본문 바로가기

C# 공부

(3)
길찾기 알고리즘(DFS, BFS, Dijkstra) 길찾기 알고리즘에는 DFS, BFS, 다익스트라, Best-First Search, A* 등 다양한 것이 존재합니다. 그 중 오늘은 DFS와 BFS, 다익스트라에 대해 학습해보겠습니다. 1. DFS (Depth First Search) DFS는 깊이 우선 탐색이라고 하며, 이름에 걸맞게 어떠한 그래프를 탐색할 때 최대한 깊숙히 탐색을 한 후, 더 탐색할 수 없으면 다른 경로를 탐색하는 알고리즘입니다. 만약 위와 같은 그래프가 있고, 2차원 배열로는 저렇게 표현했다고 합시다. 시작점이 노드 A라고 했을 때, DFS 알고리즘으로 그래프를 순회한다면 어떤 순서로 순회를 할까요? - DFS의 순회 과정 - 1) A와 연결된 노드는 B와 C 입니다. A는 자신과 연결된 2개의 노드 중 어떤 노드를 선택할 지 고릅..
미로 생성 알고리즘(Binary Tree, Sidewinder) 본 미로 생성 알고리즘 아이디어는 http://www.jamisbuck.org/mazes/ 블로그에 있습니다. 미로를 만들기 전 준비단계 미로를 만들기 전에는 벽으로 둘러싸인 격자 Grid를 만들어야 합니다. 여기서 초록색은 갈 수 있는 부분 빨간색은 벽을 말합니다. void InitBoard() { // 일단 길을 다 막아버림 for (int y = 0; y < _size; y++) { for (int x = 0; x < _size; x++) { if (x % 2 == 0 || y % 2 == 0) _tile[y, x] = TileType.Wall; else _tile[y, x] = TileType.Empty; } } } 1. Binary Tree Algorithm 해당 알고리즘은 미로 생성 알고리즘 ..
Indexer 문법 c#으로 배열을 구현한다고 했을 때, Indexer는 어떻게 구현할 수 있을까? T[] array = new T[SIZE]; public T this[int index] { get { return array[index]; } set { _data[index] = value; } }