자료 구조 & 알고리즘(Data Structure & Algorithm)/알고리즘(Algorithm)

[알고리즘] 다익스트라 역방향 그래프

다문다뭉 2024. 12. 2. 12:43

문제 유형

  • 도착 지점에서 여러 출발 지점까지의 최단경로를 구하는 경우
  • 특정 노드(출발 지점이 고정되어 있지 않음)에서 도착 지점까지의 최소 비용을 시간초과 안나게 구해야 하는 경우

 

역방향 그래프 활용 이유

  • 그래프의 가중치가 양수일 경우, 간선을 역으로 뒤집어도 최단 경로가 일치한다.
  • 도착 지점을 기준으로 다익스트라 를 1번만 수행하면, 모든 출발 지점에서 도착 지점까지의 최단 경로를 한꺼번에 구할 수 있다.

예시

    • 문제 : 여러 도시에서 한 중앙 도시로 최소 비용 이동을 구하는 경우
    • 해결 : 간선을 역방향으로 뒤집고 중앙 도시에서 모든 도시로 가는 다익스트라를 수행하면, 모든 모시에서 중앙 도시로 가는 최단 경로를 1번에 구할 수 있다.

[백준] 1238번 : 파티 - 자바(Java)

[백준] 17835번 : 면접보는 승범이네 - 자바(Java)