jangzzang   4년 전

도저히 방법이 안떠올라서 인터넷에서 해법을 보고 풀었습니다.

dp테이블을 

dp[노드][현재까지오는 최소 기름값] = 비용 으로 잡고 다익스트라를 돌렸는데 제가 의문이 드는 부분은 

51번째 줄의

if (node == n) {
ans = cost;
break;
}

부분입니다. 가장 먼저 dp[node][] 배열이 갱신되는 값이 최소의 비용이 보장 된다는게 잘 이해가 되지 않습니다.

ㅠㅠ 혹시 도움 주실 분 있으실까요?

sait2000   4년 전

다익스트라는 출발점에서부터의 거리가 가까운 정점 순서로 방문하기 때문에 그렇습니다. 즉, 한번 도착점에 방문하게 되면 그 다음에 확인할 때는 무조건 더 먼 거리로 방문한 경우에 해당됩니다.

댓글을 작성하려면 로그인해야 합니다.