1753번 - 최단경로
36번째 줄 조건문입니다.
if (second > Distance[first])continue;
first는 큐에 들어있는 가장 짧은거리를가진 경유지입니다
second 는 해당 경유지까지의 거리입니다.
이미 알고있는 목적지까지의 거리보다 빠른길로 가기 위해서는
경유지의 이동거리가 짧아야하는게 당연하므로 second > Distance[first] 로 이해하고 있습니다 .
하지만 second >= Distance[first] 와같이 = 를 넣으면 틀린정답이 나오게됩니다.
경유지까지의 거리와 목적지까지의 거리가 같다면 해당 경유지도 무시해야하는거 아닌가요?
하지만 이렇게 = 를 삽입하게되면 틀린정답으로 나오게됩니다..
모든간선은 1이상이기때문에 같은값이라면 제해야한다고 생각합니다.
이것이 처음에들어가는 출발노드를 처리하기위함 이라 생각을해서 첫노드이면 컨티뉴하지말아라! 라는 조건까지 넣어봤는데 그렇게해도 오답으로 표기됩니다.
가르침을 주신다면 너무나도 감사할거같습니다.
댓글을 작성하려면 로그인해야 합니다.
paikku 5년 전
36번째 줄 조건문입니다.
if (second > Distance[first])continue;
first는 큐에 들어있는 가장 짧은거리를가진 경유지입니다
second 는 해당 경유지까지의 거리입니다.
이미 알고있는 목적지까지의 거리보다 빠른길로 가기 위해서는
경유지의 이동거리가 짧아야하는게 당연하므로 second > Distance[first] 로 이해하고 있습니다 .
하지만 second >= Distance[first] 와같이 = 를 넣으면 틀린정답이 나오게됩니다.
경유지까지의 거리와 목적지까지의 거리가 같다면 해당 경유지도 무시해야하는거 아닌가요?
하지만 이렇게 = 를 삽입하게되면 틀린정답으로 나오게됩니다..
모든간선은 1이상이기때문에 같은값이라면 제해야한다고 생각합니다.
이것이 처음에들어가는 출발노드를 처리하기위함 이라 생각을해서 첫노드이면 컨티뉴하지말아라! 라는 조건까지 넣어봤는데 그렇게해도 오답으로 표기됩니다.
가르침을 주신다면 너무나도 감사할거같습니다.