개념과 실습 경험을 연결해 설명하는 결
다익스트라 알고리즘은 출발 노드에서 다른 모든 노드까지의 최단 거리를 구하는 알고리즘입니다. 핵심은 현재까지 알려진 최단 거리가 가장 짧은 노드를 매 단계 선택해 인접 노드의 거리를 갱신하는 방식이고, 음수 간선이 없을 때만 올바르게 동작합니다. 알고리즘 수업에서 우선순위 큐를 써서 구현해봤는데, 처음에는 방문 체크 없이 짰다가 사이클이 있는 그래프에서 무한루프가 났습니다. 시간 복잡도는 O((V+E)logV) 정도로, 노드 수가 많으면 A*처럼 휴리스틱을 추가하는 방식이 더 효율적이라는 것도 비교하며 배웠습니다. 네트워크 라우팅이나 지도 경로 탐색처럼 실제 시스템에서 변형된 형태로 쓰인다는 걸 알고 나서 이 알고리즘이 더 와닿았습니다.