카테고리 없음
Chap 4. DFS, BFS, 백트래킹 - DFS 와 BFS 차이점
SayHiWorld
2024. 12. 21. 14:54
DFS, BFS
1. 공통점
둘 다 완전 탐색 알고리즘이므로
모든 경우의 수를 다 살펴봄. 반드시 답을 찾을 수 있음.
대신, 느리다는 단점을 가지고 있음.
2. 차이점
탐색 순서가 다름.
DFS는 Depth를 기반으로 탐색한다.
'5' 노드를 최단거리로 찾는다고 가정하면,
Depth 가 아닌 Breadth 가 맞음.
0에서 시작해 Depth 기반으로 5를 만났을 때는 , 이게 최단거리로 온거라는 걸 보장할 수 없음. 딴 거 다 둘러보고 왔을 수도 있음.
그래서, 정말로 모든 경로를 다 가보면서 어떨 때 5를 만났는지, 또 그 거리는 몇인지를 기록해야함.
반면, Breadth 기반으로 탐색한다가 5를 만났다면, 그게 곧 최단거리 경로이고 더 이상 탐색할 필요가 없음.
그럴 수 밖에 없는 이유가
0 에서 거리가 1인 노드들 : 1, 2
0에서 거리가 2인 노드들 : (1로 부터 들어온) 3,4, (2로부터 들어온) 5,6
이런 식으로 큐에 들어가기 때문에, bfs 로 탐색하다가 5를 만났다면 그 경로는 최단 거리 경로일 수 밖에 없는 거임.