Problem : 최단경로
유형 : 다익스트라
문제 해석
- 한 점에서 다른 모든 정점으로의 최단 경로를 구하라.
문제 재해석
- 한 점으로부터의 다른 점들 간의 최단 경로를 찾는 문제이다.
해결 전략
- 정점이
2만
간선이30
만이다. - 간선이 많으므로
Dijkstra
로 해결한다.
구현, 설계
- 다익스트라를 구현한다.
{ 비용, 다음 정점 }
으로pair
를 만든다.- 처음
node
를 세팅할 때pair
의 순서에 주의 한다.
주의할 점
- 서로 다른두 정점 사이에 여러개의 간선이 존재 할 수 있다.
heap
을 이용하연, 어차피 최선의 선택을 하게 되므로 이 조건에 대한 처리가 동시에 된다.
디버깅
input
파일을 이상한것을 두고output
이 이상하다고 고민했다.pq
를 선언할떄,greater
인자를 잘못된 것으로 설정 하였었다.
코드
1 |
|
피드백
- 다익을 구현할때, 실수없이 물 흐르듯이 구현 할 수 있도록 연습하자.
- 마치
BFS
구현 하는것 처럼.