https://www.acmicpc.net/problem/1753 그래프의 한 정점에서 모든 정점으로의 최단 거리를 구하는 알고리즘이다. 그리디 기반 알고리즘으로, 정점이 v개, 간선이 e개라면 $O(ElogV)$의 시간복잡도가 소요된다.
다음의 문제를 풀어보자.
모든 정점을 방문하고 최단 거리인 정점으로 가는 것이기 때문에 한 정점을 방문했었는지 확인하
기 위해 만들었던 visited 배열을 사용할 필요가 없었다. 하지만 이 방법을 사용할 경우에는 방문이
가능한 모든 정점을 돌아서 확인해야 하므로 정점이 많을수록 시간이 많이 필요하고 실제로
시간 초과가 떴다.
굳이 모든 정점을 방문하지 않고 우선순위 큐에 저장된 최단 거리의 정점을 방문하도록 해 시간 초
과 문제를 해결할 수 있었다.