ALGORITHM/BOJ
[BOJ] 11779번 최소비용 구하기 2 (C++)
yegyeom
2022. 1. 4. 00:33
문제 (https://www.acmicpc.net/problem/11779)
출발 도시에서 도착 도시까지의 최소 비용을 구하는 일반적인 다익스트라 문제이다. 다른 문제들과 차이점은 최소 비용뿐만 아니라 경로에 포함되어있는 도시의 개수와 방문하는 도시 번호도 출력해야 한다.
따라서 배열을 생성하여 각 도시에 도달하기 위해서는 몇 번 도시에서 출발해야 하는지를 기록했다.
예를 들어, route[a] = b는 "a번에 최소로 도달하기 위해서는 b번에서 와야 한다"라는 의미이다.
route[start] = 0으로 설정해주고 route[end] 값부터 역순으로 경로를 체크한다.
end 값 -> end번에 최소로 도달하기 위한 이전 번호 -> ... -> start 다음으로 방문하는 도시 번호-> start 값
역순으로 경로를 체크했으므로 reverse 함수를 사용한 후 정답을 출력했다.
[소스코드]