다익스트라 예제 - 1
문제 분석
에지의 가중치가 10 이하의 자연수, 시작점과 다른 노드와 관련된 최단 거리를 문제로, 다익스트라 알고리즘의 가장 기본적인 형태를 구현할 수 있는지 묻는 문제다.
손으로 풀어보기
인접 리스트에 노드를 저장하고 거리 리스트를 초기화한다. 거리 리스트는 출발 노드는 0, 나머지는 무한으로 초기화한다.

최초 시작점을 우선순위 큐에 삽입하고, 다음 과정에 따라 다익스트라 알고리즘을 수행한다.
다익스트라 알고리즘 수행 과정
거리 리스트에서 아직 방문하지 않은 노드 중 현재 값이 가장 작은 노드를 선택한다. 즉, 우선순위 큐에서 데이터를 뽑는다.
해당 노드와 연결된 노드들의 최단 거릿값을 다음 공식으로 업데이트한다.
연결 노드 거리 리스트 값보다선택 노드의 거리 리스트 값 + 에지 가중치가 더 작은 경우 업데이트 수행업데이트가 수행되는 동안 연결 노드를 우선순위 큐에 삽입
큐가 빌 때까지 과정 1~2를 반복한다.

완성된 거리 리스트의 값을 출력한다.
슈도코드
코드 구현 - 파이썬
코드 구현 - 자바
Last updated