알고리즘
어려움
코딩
다익스트라 최단 경로
가중치 그래프에서 최단 경로를 찾는 다익스트라 알고리즘 구현
30분
100점
3개 테스트케이스
#3688
문제 설명
가중치가 있는 방향 그래프에서 시작 노드로부터 모든 노드까지의 최단 거리를 구하는 다익스트라 알고리즘을 구현하세요.
입력 형식
첫 줄: 노드 수 N, 간선 수 M, 시작 노드 S (공백 구분)
다음 M줄: 출발노드 도착노드 가중치
출력 형식
N개의 줄에 각 노드까지의 최단 거리 출력 (도달 불가능하면 -1)
제약 조건
- 1 ≤ N ≤ 20,000
- 1 ≤ M ≤ 300,000
- 가중치는 1 이상 10 이하의 자연수
힌트
우선순위 큐(최소 힙)를 사용하면 O((V+E)logV) 시간 복잡도로 구현할 수 있습니다.
예제 테스트케이스
예제 1
기본 테스트
입력
5 6 1 1 2 2 1 3 3 2 3 1 2 4 5 3 4 2 4 5 1
출력
0 2 3 5 6
예제 2
직선 경로
입력
3 2 1 1 2 5 2 3 3
출력
0 5 8
예제 3
도달 불가능 노드
입력
4 2 1 1 2 1 3 4 1
출력
0 1 -1 -1
실행 버튼을 눌러 코드를 실행하세요.