-
[알고리즘] BFS는 왜 가중치가 있는 그래프에서 사용할 수 없을까?알고리즘 2025. 9. 13. 16:57
BFS는 가중치가 있는 간선이 있는 그래프에서는 최단 거리 알고리즘으로써 사용될 수 없다.
그 이유는 BFS는 방문한 순서대로 동작을 하게 되기 때문이다.
그렇기 때문에 다음과 같은 상황에서 전혀 사용할 수 없는 것이다.

시작점이 A라고 가정해보자.
시작점 A를 방문하게 되었을 때 BFS 알고리즘을 이용하게 된다면 (2, B)와 (12, C)를 queue에 넣게 될 것이다.
그리고 나서 D를 방문하게 되고 알고리즘은 종료를 하게 될 것이다.
이렇게 될 경우 BFS 알고리즘 입장에서 A에서 C까지의 최단 경로가 12가 되는 것이다.
실제로는 2 + 4 + 3 = 9 인데도 말이다.
즉, A에서 C까지의 최단 경로는 A to C가 아니라 A to B to D to C가 되는 것이다.
이러한 상황에서 BFS 알고리즘은 의미가 없어지게 되고
이를 해결하기 위해 나온 알고리즘이 다익스트라 알고리즘이다.
'알고리즘' 카테고리의 다른 글
그래프 역추적 (0) 2025.11.09 최장 증가 부분 수열 + 역추적 (0) 2025.07.28 최장 증가 부분 수열 (0) 2025.07.25 [알고리즘] 사이클 여부 판별하기 (0) 2025.03.26 DFS BFS 시간복잡도 (0) 2025.01.29