최단 경로를 구하는 알고리즘이다.
다익스트라 알고리즘과 비교하면 좋은데, 다익스트라 알고리즘의 경우에는 하나의 정점에서
출발했을 때, 다른 모든 정점으로의 최단 경로를 구하는 알고리즘이다.
하지만, 만약 모든 정점에서 모든 정점으로의 최단 경로를 구한다면,
즉,
1 : N 이 아니라 N : N 의 최단 경로를 구할 때는 플로이드 와샬 알고리즘을 쓴다는 것이다.
다익스트라 알고리즘은 가장 적은 비용을 하나씩 선택해야 했다면, 플로이드 와샬 알고리즘은
' 거쳐가는 정점 ' 을 기준으로 알고리즘을 수행한다.
기본적으로 다이나믹 프로그래밍에 의거한다.
시간 복잡도는 O(V^3)이다.
즉, 특별한 경우가 아닌 이상 쓸일은 잘 없겠다.
'Algorithm' 카테고리의 다른 글
프로그래머스 2018 KAKAO BLIND 방금그곡 ( 문자열 ) JAVA (0) | 2021.04.29 |
---|---|
알고리즘 문제 풀 때 자주하는 for문에서의 실수😅 ( JAVA ) (0) | 2021.04.27 |
BOJ 14503번 로봇청소기 ( 구현 , DFS ) JAVA (0) | 2021.04.19 |
프로그래머스 광고 삽입 KAKAO BLIND 2021 ( 누적 합 ) JAVA (0) | 2021.04.18 |
프로그래머스 KAKAO BLIND 2020 가사 검색 LEVEL4 ( 트라이 ) JAVA (0) | 2021.04.14 |