다익스트라 최단 경로 계산기
간선 목록에 다익스트라 알고리즘을 적용해 시작 노드로부터의 최단 거리와 경로, 방문과 갱신을 보여 주는 단계별 표를 구합니다. 방향·무방향 모두 지원합니다.
각 단계에서는 아직 방문하지 않은 노드 중 현재 알려진 거리가 가장 짧은 노드(동점이면 목록에서 먼저 나온 노드)를 방문하고 이웃 노드를 갱신합니다.
| 노드 | 거리 | 이전 노드 | 경로 |
|---|---|---|---|
| s | 0 | (시작) | s |
| t | 8 | y | s → y → t |
| y | 5 | s | s → y |
| x | 9 | t | s → y → t → x |
| z | 7 | y | s → y → z |
| 단계 | 방문 | 거리 | 갱신 | s | t | y | x | z |
|---|---|---|---|---|---|---|---|---|
| 1 | s | 0 | t = 10, y = 5 | 0 | 10 | 5 | ∞ | ∞ |
| 2 | y | 5 | t = 8, x = 14, z = 7 | ✓ | 8 | 5 | 14 | 7 |
| 3 | z | 7 | x = 13 | ✓ | 8 | ✓ | 13 | 7 |
| 4 | t | 8 | x = 9 | ✓ | 8 | ✓ | 9 | ✓ |
| 5 | x | 9 | — | ✓ | ✓ | ✓ | 9 | ✓ |
다익스트라 알고리즘은 간선 가중치가 음수가 아닌 그래프에서 한 노드로부터 다른 모든 노드까지의 최단 경로를 찾습니다. 경로 안내, 네트워크 라우팅, 많은 교재 문제의 바탕이 되는 알고리즘입니다. 간선을 목록으로 입력하고 시작 노드(그리고 원하면 도착 노드)를 고르면, 이 계산기가 모든 최단 거리와 경로, 그리고 손으로 추적할 때처럼 어느 노드를 방문하고 어느 거리를 갱신하는지 보여 주는 단계별 표를 만들어 줍니다.
사용 방법
- 한 줄에 간선 하나씩 출발, 도착, 가중치를 입력합니다(A B 4).
- 한 방향 간선이면 "방향"을 켜고, 양방향이면 꺼 둡니다.
- 시작 노드와 (선택 사항인) 도착 노드를 입력합니다.
- 거리와 경로, 모든 노드의 표, 단계별 과정을 확인합니다.
계산식
반복: 방문하지 않은 노드 중 d(u)가 가장 작은 u를 방문 · u → v 간선(가중치 w)마다 d(u) + w < d(v)이면 d(v) = d(u) + w, prev(v) = u
시작 노드(0)를 제외한 모든 거리는 ∞에서 시작합니다. 노드를 방문하면 그 거리가 확정되는데, 이는 가중치가 음수가 아닐 때만 보장되므로 음수 가중치는 거부합니다(벨만–포드가 처리). 경로는 prev를 따라 시작 노드까지 거슬러 올라가 복원합니다. 동점이면 먼저 적은 노드가 우선합니다. 평행 간선도 허용되며 더 싼 쪽이 선택됩니다.
예시
샘플은 『Introduction to Algorithms』(CLRS) 그림 24.6의 방향 그래프입니다. s에서 출발하면 방문 순서는 s(0), y(5), z(7), t(8), x(9)입니다. x까지의 최단 경로는 s → y → t → x, 길이 9(5 + 3 + 1)입니다. 직행처럼 보이는 s → t 간선(10)은 s → y → t(8)에 집니다.
자주 묻는 질문
다익스트라는 왜 음수 가중치를 처리하지 못하나요?
노드를 방문하는 순간 그 거리를 확정하기 때문입니다. 나중에 발견한 음수 간선이 그 거리를 더 줄일 수 있어 답이 틀려집니다. 대신 벨만–포드를 쓰세요.
간선 순서가 중요한가요?
동점일 때만 중요합니다. 방문하지 않은 두 노드의 거리가 같으면 목록에서 먼저 나온 노드를 먼저 방문합니다. 거리 자체는 순서에 따라 달라지지 않습니다.
"도달 불가"는 무슨 뜻인가요?
시작 노드에서 그 노드로 가는 경로가 없다는 뜻입니다. 방향 그래프에서는 간선이 모두 엉뚱한 방향일 수 있습니다.
출처
최종 업데이트:
이 입력값이 담긴 페이지 주소: https://kakao.mobile/ko/tools/dijkstra-visualizer/
인용·퍼가기
kakaoCalc. (2026, November 8). 다익스트라 최단 경로 계산기. https://kakao.mobile/ko/tools/dijkstra-visualizer/
“다익스트라 최단 경로 계산기.” kakaoCalc, 8 Nov. 2026, kakao.mobile/ko/tools/dijkstra-visualizer/.