13308번 - 주유소
도저히 방법이 안떠올라서 인터넷에서 해법을 보고 풀었습니다.
dp테이블을
dp[노드][현재까지오는 최소 기름값] = 비용 으로 잡고 다익스트라를 돌렸는데 제가 의문이 드는 부분은
51번째 줄의
if (node == n) { ans = cost; break; }
부분입니다. 가장 먼저 dp[node][] 배열이 갱신되는 값이 최소의 비용이 보장 된다는게 잘 이해가 되지 않습니다.
ㅠㅠ 혹시 도움 주실 분 있으실까요?
다익스트라는 출발점에서부터의 거리가 가까운 정점 순서로 방문하기 때문에 그렇습니다. 즉, 한번 도착점에 방문하게 되면 그 다음에 확인할 때는 무조건 더 먼 거리로 방문한 경우에 해당됩니다.
댓글을 작성하려면 로그인해야 합니다.
jangzzang 4년 전
도저히 방법이 안떠올라서 인터넷에서 해법을 보고 풀었습니다.
dp테이블을
dp[노드][현재까지오는 최소 기름값] = 비용 으로 잡고 다익스트라를 돌렸는데 제가 의문이 드는 부분은
51번째 줄의
if (node == n) {
ans = cost;
break;
}
부분입니다. 가장 먼저 dp[node][] 배열이 갱신되는 값이 최소의 비용이 보장 된다는게 잘 이해가 되지 않습니다.
ㅠㅠ 혹시 도움 주실 분 있으실까요?