1. 깊이 우선 탐색(DFS) 개요
- 깊이 우선 탐색(Depth-First Search, DFS)은 그래프나 트리 구조에서 가능한 한 깊이 들어가면서 탐색을 진행하는 알고리즘입니다.
- 미로 찾기를 할 때 한 방향으로 계속 가다가 막히면 다시 돌아와서 다른 방향으로 가는 것과 유사합니다.
1.1 DFS의 특징
- 한 경로를 끝까지 탐색한 후 다음 경로로 이동
- 재귀 함수나 스택으로 구현 가능
- 백트래킹이 필요한 문제에 적합
- 모든 노드를 방문하는 것이 목표일 때 사용
2. DFS 동작 원리
2.1 기본 알고리즘
- 시작 노드를 방문 처리
- 현재 노드와 연결된 미방문 노드를 찾아 방문
- 더 이상 방문할 노드가 없으면 이전 노드로 돌아감
- 모든 노드를 방문할 때까지 2-3 반복
DFS vs BFS
DFS는 깊이를 우선으로 하는 반면, BFS(너비 우선 탐색)는 너비를 우선으로 탐색합니다. 미로에서 DFS는 한 길을 끝까지 가보는 전략이고, BFS는 현재 위치에서 갈 수 있는 모든 길을 한 칸씩 가보는 전략입니다.