hio9_9
또바기잇
hio9_9

블로그 메뉴

  • 홈
  • Github
  • Tistory
  • All (57)
    • 코딩테스트 연습 (28)
    • CS (13)
      • 알고리즘 (4)
      • 자료구조 (2)
      • 운영체제 (7)
    • 42 (9)
    • iOS (2)
    • GIT (3)
    • TIL (2)
hELLO · Designed By 정상우.
hio9_9

또바기잇

[Algo] 다익스트라 알고리즘 (dijkstra)
CS/알고리즘

[Algo] 다익스트라 알고리즘 (dijkstra)

2022. 11. 22. 12:38

Dijkstra Algorithm

  • DP 를 이용한 대표적 최단 경로 알고리즘
  • 특정한 하나의 정점에서 다른 모든 정점으로 가는 최단 경로를 구할 수 있음
  • 음의 간선 불가능

 

Idea

" 최단 거리는 여러 개의 최단 거리로 이루어져 있다 "
  • 출발 정점에서 가장 가까운 정점을 중간 정점으로 했을 때의 거리와 비교하여 최단 거리를 업데이트

 

ex) 출발 정점이 1이고, 1에서 가장 가까운 정점인 4를 중간 정점으로 했을 때,

      3, 5의 경우 1에서 바로 가는 것보다 중간 정점인 4를 거쳐서 가는  것이 더 가까움

      출발 정점인 1에서 3과 5로 가는 최단 거리를 3, 7로 업데이트

 

 

 

 

  • 모든 정점에 대해 출발 정점에서 가까운 순서대로 위 동작을 반복하면 출발 정점에서 각 정점까지의 최단 경로를 알 수 있음

1과 가장 가까운 정점 1 2 3 4 5
init 0 2 7 1 10
4 0 2 3 1 7
2 0 2 3 1 5
3 0 2 3 1 5
5 0 2 3 1 5

 

Pseudo Code

 

저작자표시 비영리 변경금지

'CS > 알고리즘' 카테고리의 다른 글

[Algo] LIS (최장 증가 부분 수열)  (0) 2023.01.29
[Algo] DP (dynamic programming)  (0) 2023.01.23
[Algo] 유클리드 호제법 (최대공약수, 최소공배수 구하기)  (0) 2022.12.21

    티스토리툴바