플로이드-와샬 알고리즘(이하 플로이드 알고리즘)은 최단 경로를 구하는 알고리즘이다.
이미 잘 알고있는 다익스트라 알고리즘은 한 점점으로 부터 다른 모든 정점으로의 최단 거리를 구할 수 있다.
하지만 플로이드 알고리즘은 모든 정점으로부터 모든 정점으로의 최단 거리를 구하는 알고리즘이다.
기본적으로 그래프를 일단 나타내고, 순차적으로 어떠한 정점을 거쳤을 때, 이동하는 비용이 줄어든다면 값을 고치는것을 반복하는 알고리즘이다.
중요한건 (A에서 B로 가는 거리) > (A에서C를 들렀다가 B로 가는거리)이면 작은 값으로 계속 갱신만 해주면 되는거다.
말로하려니까 어렵다. 아래에 그림을 참고해라.
관련 문제
https://www.acmicpc.net/problem/11404
https://jinniepark.tistory.com/64
'Coding Test > Algorithm' 카테고리의 다른 글
[알고리즘 기본]다익스트라 알고리즘 (0) | 2021.09.27 |
---|---|
[알고리즘 기본]Kruskal 알고리즘 (0) | 2021.09.15 |
[알고리즘 기본]PRIM 알고리즘 (0) | 2021.08.24 |