자료 구조와 알고리즘
간선에 가중치가 없는 그래프에서, 출발점에서 각 정점까지의 최소 간선 수를 구하고 싶다. 적합한 탐색 방법과 그때 사용하는 자료 구조의 조합은?
- A너비 우선 탐색과 큐
- B깊이 우선 탐색과 스택
- C너비 우선 탐색과 스택
정답과 해설 보기
정답: A. 너비 우선 탐색과 큐
너비 우선 탐색은 출발점에서 간선 1개로 갈 수 있는 정점, 2개로 갈 수 있는 정점…처럼 가까운 순서로 방문합니다. 발견한 정점을 큐의 뒤에 넣고 앞에서 꺼내어 조사함으로써 이 '가까운 순서'가 유지되므로, 처음 도달했을 때의 간선 수가 그대로 최소 수가 됩니다. 깊이 우선 탐색(재귀나 스택을 사용)은 한 길을 갈 수 있는 데까지 나아가므로, 돌아가는 경로로 먼저 도달하는 경우가 있어 최단이 보장되지 않습니다. 큐 대신 스택을 사용하면 깊이 우선 탐색에 가까운 순회가 되어 버립니다.