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