[Algorithm] 플로이드-워셜 알고리즘
·
Computer Science/알고리즘
플로이드-워셜 알고리즘 - 그래프에서 최단 거리를 구하는 알고리즘으로, 모든 노드 간에 최단 경로를 탐색한다. 특징 - 음수 가중치 에지가 있어도 수행이 가능하다. - 동적 계획법의 원리를 이용해 알고리즘에 접근한다. 시간복잡도 - O(V^3) - 모든 노드 간의 최단 거리를 확인하기 때문에 시간 복잡도가 빠르지 않다. 따라서 이 알고리즘으로 문제를 풀어야 하는 경우 다른 그래프에 비해 노드의 개수 범위가 적게 나타난다. 핵심 원리 - 노드 A부터 노드 B까지 최단 경로를 구했다고 가정했을 때 최단 경로 위에 노드 K가 존재한다면, 그것을 이루는 부분 경로 역시 최단 경로이다. - 예를 들어 1 -> 5까지의 최단 경로가 1 -> 3 -> 4 -> 2 -> 5 라면, 1 -> 4, 4 -> 5 역시 최단..