문제 1 · 깊이 우선 탐색과 자료구조
문제 1 [1점]
아래 문장이 참이면 O, 거짓이면 X로 답하세요.
깊이 우선 탐색depth-first search은 큐queue 자료구조에 기반해서 구현된다.
풀이 및 해설
거짓입니다.
깊이 우선 탐색depth-first search(DFS)은 한 방향으로 갈 수 있는 데까지 깊이 들어갔다가, 막히면 되돌아와 다른 가지를 탐색합니다. 이 "되돌아오기"는 후입선출last-in first-out 구조인 스택stack이 자연스럽게 처리합니다.
- 재귀 구현: 함수 호출 스택call stack이 곧 스택 역할을 합니다.
- 반복 구현: 명시적 스택에 정점을 넣고 꺼내며 탐색합니다.
반면 큐queue는 선입선출first-in first-out 구조로, 시작점에서 가까운 정점부터 층층이 방문하는 너비 우선 탐색breadth-first search(BFS)에 사용됩니다.
| 탐색 | 자료구조 | 방문 순서 |
|---|---|---|
| DFS | 스택 (재귀/명시적) | 깊이 우선 |
| BFS | 큐 | 너비(층) 우선 |
따라서 "DFS가 큐에 기반한다"는 문장은 DFS와 BFS를 뒤바꾼 서술입니다.