작성하신 코드는.
최단 거리를 찾고,
dfs 로 전체 경로를 다 가보면서 최단 경로일 경우 그 경로를 제외시키고
다시 최단 경로를 찾는 방법으로 보입니다.
두번째 전체 경로를 다 뒤지면서 경로를 제외하는 방법은 시간이 많이 걸립니다.
그래서 최단 경로를 찾을 때 최단 거리 갱신시 누구로 부터 갱신되었는지.. 그러니까 어디로부터 온 것이 최단 경로인지 기록하면 (parent) 빨리 지울 수 있습니다.
35라인 근처에 parent 를 저장/갱신하는 부분을 넣으면 됩니다.
다만, 모든 최단 경로를 다 고려해야 하므로 하나의 노드에 복수의 parent 가 있을 수 있다는 것을 고려해야합니다.
그리고..
78라인에 M 이 아니라 N일것 같습니다.
63라인에 0 이 아니라 false 가 바른 표현일 것 같습니다.
minhye11 4년 전
다익스트라 -> dfs(?) -> 다익스트라 순서대로 구현한거구요.
왜 시간초과가 나는지 잘 모르겠습니다.
질문 리스트에는 시간초과에 대한 이야기가 없어서 문제점을 찾기가 어렵습니다ㅜ
도움주시면 감사하겠습니다!