c# 37

[내배캠][Unity6기] 모의 면접 준비

- 자기 소개에서 진행한 프로젝트 내용 간략하게 제시- 시선 고정, 에너지 넘치고 자신감 있는 태도로 임하기 Q. 값타입과 참조 타입에 대해 서술하세요.A.값타입: 실제 데이터를 스택 메모리에 저장하며 속도 빠름.ex) int, float, bool, struct, enum참조 타입: 데이터의 메모리 참조값, 즉 주소는 스택에 실제 데이터는 힙 메모리에 저장.크기가 정해지지 않은 동적 크기 데이터 저장하기에 적합ex) class, string, array 등 Q. 오버라이딩과 오버로딩에 대해 서술하세요.A.Override: 상속 관계에서 부모 클래스 또는 인터페이스의 메서드를 이를 상속받는 클래스가 재정의.Overload: 같은 클래스 내에서 동일한 이름의 메서드를 매개변수 타입이나 개수를 다르게 하여 ..

[길찾기 알고리즘] 2. 그래프 (2) 그래프 기본 개념

그래프- 현실 세계의 사물이나 추상적인 개념 간의 연결 관계를 표현- 정점, 간선으로 이루어짐- 방향과 가중치 유무에 따라 종류가 다양 - Vertex(정점) : 데이터를 표현 (사물, 개념 등)- Edge(간선) : 정점들을 연결하는데 사용 [ 그래프 예시]- 일반 그래프 : SNS 관계도- 가중치 그래프 (Weighted Graph) : 지하철 노선도- 방향 그래프 (Directed Graph) : 일방통행 포함된 도로망 * 특징 : 언어 차원에서 지원하는 Collection 없음- 종류가 매우 다양하므로 상황에 맞는 그래프를 사용자가 직접 구현하여 사용코드로 만들기인스턴스로 생성하는 방법- 각 정점마다 객체로 생성해 연결using System;using System.Collections.Generi..

C# 2024.11.23

[길찾기 알고리즘] 2. 그래프 (1) Stack & Queue

- using System.Collections.Generic; 추가Stack- 후입선출- LIFO(Last In First Out) [ 함수 ]- Push : Stack에 값을 저장- Pop : Stack에서 값을 삭제- Peek : Stack 최상단의 값을 확인Stack stack = new Stack();stack.Push(101);stack.Push(102);stack.Push(103);stack.Push(104);stack.Push(105);// 빈 stack에 pop이나 peek하면 에러if (stack.Count > 0){ int data = stack.Pop(); // 105 int data2 = stack.Peek(); // 104}Queue- 선입선출- FIFO(F..

C# 2024.11.19

[길찾기 알고리즘] 1. 미로 준비 (5) 오른손 법칙

개념- 미로에 오른손을 기준으로 벽을 짚고 가면 목적지까지 도달- 최단 경로는 아님- 모든 벽이 이어져 있어야 유효- 중간에 벽이 끊겨 있으면 무한히 순환Player.csusing System;using System.Collections.Generic;using System.Text;namespace CSharpAlgorithm{ class Pos { public Pos(int y, int x) { Y = y; X = x; } public int Y; public int X; } class Player { // 플레이어 좌표 public int PosY { get; private set; } public..

C# 2024.11.18

[길찾기 알고리즘] 1. 미로 준비 (2) Side Winder 방법

생성 과정1) 미로 전체를 사방이 막힌 격자 모양으로 초기화2) 빈 공간에서 오른쪽 또는 아래쪽으로 길 생성2-1) 계속 한 방향으로 확장 x, 다른 방향으로 길 만들게 되면 이전 경로의 벽 중 하나에서 길 만들기// 예외 처리2-1) 가장 오른쪽 벽과 가장 아래쪽 벽은 막힌 채로 유지2-2) 우측 하단 꼭지점 위 또는 왼쪽은 교차점으로 길로 뚫리지 않게 처리  장점 : 단순하고 직관적, Binary Tree 에 비해 미로 모양 복잡단점 : 오른쪽과 아래쪽에 직선 경로 생성public void Initialize(int size){ // 미로 변의 길이 홀수인지 확인 if (size % 2 == 0) return; _tile = new TileType[size, size]; ..

C# 2024.11.16

[길찾기 알고리즘] 1. 미로 준비 (2) Binary Tree 방법

생성 과정1) 미로 전체를 사방이 막힌 격자 모양으로 초기화2) 빈 공간에서 오른쪽 또는 아래쪽으로 길 생성(벽을 빈 공간으로 변경)// 예외 처리2-1) 가장 오른쪽 벽과 가장 아래쪽 벽은 막힌 채로 유지2-2) 우측 하단 꼭지점 위 또는 왼쪽은 교차점으로 길로 뚫리지 않게 처리  장점 : 단순하고 직관적단점 : 미로 모양 단순, 오른쪽과 아래쪽에 직선 경로 생성 public void Initialize(int size){ // 미로 변의 길이 홀수인지 확인 if (size % 2 == 0) return; _tile = new TileType[size, size]; _size = size; GenerateByBinaryTree();}public void Gener..

C# 2024.11.15

Deep Copy & Shallow Copy

Deep Copy (깊은 복사) & Shallow Copy (얕은 복사) ref(참조) 객체를 복사하는 경우(얕은 복사) 두 개의 객체가 하나의 값을 공유하는 현상 발생[ 깊은 복사 ]- struct로 선언된 mage는 기본적으로 객체 값 복사하면 deep copy-  mage2는 mage에서 초기값만 복사하여 가져왔을 뿐 서로 연관 x, 독립적인 객체 [ 얕은 복사 ] -  class로 선언된 knight는 기본적으로 객체 값 복사하면 shallow copy- knight2는 knight 객체의 또다른 이름이 됨, 같은 변수를 동시에 공유 [ 결과 비교 ] - mage와 knight 모두 복사본을 만들고 그 복사본의 hp를 0으로 변경- struct인 mage와 mage2는 독립적이므로 mage2의 h..

C# 2024.11.09