Dijkstra
-
[Python] 우선순위 큐를 이용한 다익스트라 알고리즘 구현ETC 2024. 12. 20. 23:21
다익스트라 알고리즘은 가중치 그래프에서 시작점과 도착점이 주어졌을 때, 최단 경로(shortest path)를 찾아주는 알고리즘이다.완전 탐색을 이용하면 많은 비용이 소모된다.이를 효율적으로 해결하기 위해 다익스트라 알고리즘을 사용한다.방문 가능한 노드들 중에서 가장 비용이 작은 노드를 선택하여 방문한다.즉, 우선순위가 높은 곳을 먼저 방문한다.우선순위 큐와의 관계우선순위 큐를 사용하면 원하는 조건에 따라 (min 또는 max) 자동 정렬이 이루어진다.이를 통해 다익스트라 알고리즘의 구현이 훨씬 간편해진다.중요한 점: 우선순위가 높은 데이터가 항상 큐의 맨 앞에 위치한다. # 간단한 수도 코드1. 우선순위 큐에 시작노드 추가 2. 우선순위가 가장 높은 노드 추출 3. 방문여부 확인 ..