본문 바로가기
코딩 테스트/개념

플로이드-워셜

by ornni 2024. 8. 3.
728x90
반응형

플로이드-워셜 floyd-warshall

 

그래프에서 최단 거리를 구하는 알고리즘

모든 노드 간에 최단 경로 탐색

음수 가중치 에지가 있어도 수행 가능

동적 계획법의 원리를 이용해 알고리즘에 접근

D[s][e] = min(D[s][e], D[s][k] + D[k][e])


1. 리스트 선언하고 초기화하기

s == e 인 경우, 0

s != e 인 경우, 무한

2. 최단거리 리스트에 그래프 데이터 저장

3. 점화식으로 리스트 업데이트하기 (n: 노드 개수)

for 경유지 k에 대해(1, n):

    for 출발노드 s에 대해(1, n):

        for 도착노드 e에 대해(1, n):

            D[s][e] = min(D[s][e], D[s][k] + D[k][e])

반응형

'코딩 테스트 > 개념' 카테고리의 다른 글

최소 신장 트리  (0) 2024.08.10
트라이  (0) 2024.08.04
유니온 파인드  (0) 2024.07.28
벨만-포드  (0) 2024.07.27
그래프  (0) 2024.07.21