1. 문제 : https://www.acmicpc.net/problem/1753
2. 풀이 : Dijkstra
3. 시간복잡도 : O(ElogV)
4. 설명
그림[1]의 그래프에서 시작점이 1번 노드 일 때, 각 노드까지의 최단거리를 구하는 방법은 다음과 같다.
시작점인 1번 노드를 우선순위큐에 삽입한다. 시작점에서 시작점까지의 최단거리는 0이다.
노드 1에서 최단 거리로 방문 할 수 있는 노드를 우선순위큐에 삽입하고, 최단 거리를 갱신한다.
노드 2에서 최단 거리로 방문 할 수 있는 노드를 우선순위큐에 삽입하고, 최단 거리를 갱신한다.
노드 3에서 최단 거리로 방문 할 수 있는 노드를 우선순위큐에 삽입하고, 최단 거리를 갱신한다.
노드 5에서 최단 거리로 방문 할 수 있는 노드를 우선순위큐에 삽입하고, 최단 거리를 갱신한다.
노드 4에서 최단 거리로 방문 할 수 있는 노드를 우선순위큐에 삽입하고, 최단 거리를 갱신한다.
노드 8에서 최단 거리로 방문 할 수 있는 노드를 우선순위큐에 삽입하고, 최단 거리를 갱신한다.
우선순위큐에 남아있는 나머지 노드 정보는 최단 거리에 영향을 주지 않으므로, 1번 노드에서 각 노드까지의 최단 거리는 그림[8]과 같다.
5. 코드
[백준][BOJ2211] 네트워크 복구 (0) | 2021.07.21 |
---|---|
[백준][BOJ11779] 최소비용 구하기 2 (0) | 2021.07.14 |
[백준][BOJ10282] 해킹 (0) | 2021.07.14 |
댓글 영역