패스잇
CS 기초 · 중급

특정 네트워크에서 최단 경로를 찾아야 할 때 너비 우선 탐색(BFS)과 깊이 우선 탐색(DFS) 중 어떤 알고리즘을 선택해야 하며, 그 이유는 무엇인지 설명해주세요.

힌트 · BFS는 간선의 가중치가 없을 때 최단 경로를 찾는 데 적합하며, DFS는 모든 경로를 탐색하거나 특정 노드의 존재 여부를 확인하는 데 유용합니다.

BFS최단 경로가중치 없는 그래프탐색 깊이시간 복잡도

모범답안

면접관님, 특정 네트워크에서 최단 경로를 찾아야 한다면 너비 우선 탐색(BFS)을 선택하겠습니다.

BFS는 시작 노드에서 가까운 노드부터 차례대로 탐색하기 때문에, 간선의 가중치가 없는 그래프에서는 최단 경로를 보장합니다. 반면, 깊이 우선 탐색(DFS)은 깊이 우선으로 탐색하기 때문에 최단 경로를 보장하지 못합니다.

예를 들어, 미로 찾기를 생각해보면 BFS는 출구까지 가장 빠른 길을 찾는 반면, DFS는 일단 한 방향으로 끝까지 가보고 막히면 돌아오는 방식으로 탐색합니다.

따라서, 가중치가 없는 그래프에서 최단 경로를 찾는 문제에서는 BFS가 더 적합하다고 생각합니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 알고리즘 면접 질문

← 알고리즘 면접 질문 전체 보기