1916 최단경로._다익스트라 주의사항

·2025년 8월 5일
0

백준 알고리즘

목록 보기
207/270

문제 해결 전략

: 다익스트라

1. 왜 틀렸을까??

u 에서 v로 가는 간선이 여러개 있고, 각 cost가 다른 경우에 대해서 생각해야 한다.

  • 이미 저장되어 있는 distTable 와 지금 타겟으로 잡은 정점의 dist를 비교해야 한다!
  • 이러한 상황을 생각해야 한다.

1번 에서 2번으로 향하는 버스 가)번의 cost : 5000
1번 에서 2번으로 향하는 버스 나)번의 cost : 10000 이라고 한다면

나) 번의 버스를 진행할 필요는 없다!
: 이미 갱신된 distT이 있따면 그 값과 비교하면 된다.
// 곰곰히 생각해보면, 작성할 수 있따.

2. distT 갱신할 때 주의할점-왜 continue는 안되는 걸까?

  • 조건식을 이렇게 하면 메모리 초과발생한다.
    -> 왜 메모리 초과가 발생했는지는 이해가 가지 않는다.

  • 하지만 이렇게 하면 정답이다.

메모리 초과가 문제가 아닌 continue 사용하면 안되는 이유

: 우리가 구현하고자 하는거는 distT 보다 작은 것들을 넣는 것이므로, continue 코드로 작성하면 안된다.

  • 다른 노드로 향하는 dist가 크더라도 돌고 돌아서 더 낮은 값이 존재한다고 하는 상황이 발생할 수 있다.
    // 즉 모든 경우의 수에 대해서 생각해야 한다.
  • 구글링



문제 비교

: 1753 최단경로는 입력 예제로 위와 같은 입력은 없는 듯하다.

profile
🔥🔥🔥

0개의 댓글