자료구조 - 깊이 우선 탐색 vs. 너비 우선 탐색
- 깊이 우선 탐색(DFS)은 한 방향으로 최대한 깊게 탐색한 후, 더 이상 갈 곳이 없으면 되돌아와 다른 경로를 탐색하는 방식입니다. 🌲
- 너비 우선 탐색(BFS)은 시작 노드로부터 가까운 노드부터 차례로, 즉 레벨별로 탐색해 나가는 방식입니다. 🌊
- 두 알고리즘 모두 모든 노드(V)와 엣지(E)를 한 번씩 처리하므로 O(V + E)의 시간 복잡도를 가집니다. ⏱️
- DFS는 스택 자료구조를 명시적으로 사용하거나 재귀 함수 호출 스택을 통해 구현됩니다. 📚
- BFS는 큐 자료구조를 사용하여 구현되며, 시작 노드에서부터 인접 노드를 순차적으로 탐색합니다. 🚶
- 그래프는 인접 리스트 방식을 사용하여 노드와 엣지를 효율적으로 표현합니다. 🔗
- DFS는 트리 순회, 사이클 탐지, 백트래킹, 특정 노드 도달 여부 확인 등 경로 탐색에 유리합니다. 🗺️
- BFS는 가중치 없는 그래프에서의 최단 경로 탐색, 미로 찾기, 네트워크 전파 문제 등 최단 거리 문제에 적합합니다. 🛣️
데브허브 | DEVHUB | 자료구조 - 깊이 우선 탐색 vs. 너비 우선 탐색