Problem : 최소비용 구하기
유형 : 다익스트라
문제 해석
- A에서 B로 가는 최소 비용 거리와 경로를 찾아라.
문제 재해석
- 최소 비용 거리
(다익스트라)
- 경로 역추적 문제이다.
해결 전략
- 최소 비용 거리는 다익스트라로 구한다.
pre
배열을 두어, 경로를 저장한다.
설계, 구현
- pair로 { 비용, 연결된 도시 } 를 관리한다
- 경로 역추적의 경우, 이전에 온 도시를 저장한다.
5번 도시
를4번 도시
를 거쳐서 올 경우가 최적인 경우pre[5] = 4
- 끝 지점 에서 부터
역추적
한다.
주의할점
플로이드
처럼nxt
를 이용 할경우 2차원 공간이 필요하다.pre
를 두어 이전에 어디서 왔는지를 기억한다.1
>5
보다1
>3
>5
가 더 최적인 경우에1
이5
를 가리키고 있게 되어 문제가 된다.
코드
1 |
|
피드백
플로이드 워셜
의 경로 추적과 다른점을 기억해두자.