CS 기초 · 중급
특정 네트워크에서 최단 경로를 찾아야 할 때 너비 우선 탐색(BFS)과 깊이 우선 탐색(DFS) 중 어떤 알고리즘을 선택해야 하며, 그 이유는 무엇인지 설명해주세요.
힌트 · BFS는 간선의 가중치가 없을 때 최단 경로를 찾는 데 적합하며, DFS는 모든 경로를 탐색하거나 특정 노드의 존재 여부를 확인하는 데 유용합니다.
BFS최단 경로가중치 없는 그래프탐색 깊이시간 복잡도
모범답안
면접관님, 특정 네트워크에서 최단 경로를 찾아야 한다면 너비 우선 탐색(BFS)을 선택하겠습니다.
BFS는 시작 노드에서 가까운 노드부터 차례대로 탐색하기 때문에, 간선의 가중치가 없는 그래프에서는 최단 경로를 보장합니다. 반면, 깊이 우선 탐색(DFS)은 깊이 우선으로 탐색하기 때문에 최단 경로를 보장하지 못합니다.
예를 들어, 미로 찾기를 생각해보면 BFS는 출구까지 가장 빠른 길을 찾는 반면, DFS는 일단 한 방향으로 끝까지 가보고 막히면 돌아오는 방식으로 탐색합니다.
따라서, 가중치가 없는 그래프에서 최단 경로를 찾는 문제에서는 BFS가 더 적합하다고 생각합니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 알고리즘 면접 질문
- 재귀 함수(Recursive Function)는 무엇이며, 재귀 함수를 작성할 때 반드시 고려해야 할 두 가지 중요한 요소는 무엇인가요?
- 해시 테이블(Hash Table) 자료구조는 무엇이며, 해싱(Hashing)의 기본 원리와 충돌(Collision)이 발생했을 때 해결하는 일반적인 방법 두 가지를 설명해주세요.
- 퀵 정렬(Quick Sort)과 병합 정렬(Merge Sort)의 동작 원리를 비교하고, 각각 어떤 상황에서 더 효율적인지 시간 복잡도와 공간 복잡도 측면에서 설명해주세요.
- 동적 계획법(Dynamic Programming)이 그리디(Greedy) 알고리즘과 어떻게 다른지 설명하고, 두 알고리즘이 각각 어떤 문제 유형에 주로 적용되는지 구체적인 예시를 들어주세요.
- 해시 테이블(Hash Table)에서 해시 충돌(Hash Collision)이 발생했을 때 이를 해결하는 대표적인 방법 두 가지를 설명하고, 각각의 장단점을 비교해주세요.
- 이진 탐색 트리(BST)에서 중위 순회(Inorder Traversal)가 어떤 특징을 가지며, 이를 활용하여 어떤 문제를 해결할 수 있는지 설명해주세요.