Problem : 특정한 최단 경로
유형 : 다익스트라
문제 해석
- 반드시 들려야 하는 정점들을 거치며 목적지까지 가는 최단 거리를 구하라.
문제 재해석
- 반드시 들려야 하는 정점은 두 개 이다.
- 경로가 없을 경우
-1
를 출력한다.
해결 전략
- 들려야 하는 정점은 2개밖에 없다.
- 즉, 경우의 수는
2!
밖에 나오지 않는다. 다익스트라
로 전부 진행해본다.- 해봐야
6 * ElogE
이기 때문에 전부 해보면 된다.
주의할 점
INT_MAX
가 더해지며 오버플로우 나는것을 주의한다.- 최대
3번
까지 더해질 수 있다.모두 경로가 없는 경우
설계, 구현
v1
를 먼저 들리는 경우v2
를 먼저 들리는 경우- 두 가지를 전부 진행 해본다.
- 두 가지 경로의 결과 값이
INF
보다 크다면-1
을 출력한다. - 그렇지 않다면, 둘 중 작은 값을 출력한다.
코드
1 |
|
피드백
- 다익스트라 짜는 속도를 좀 더 올리자.