Floyd-Warshall (플로이드-워셜)
·
알고리즘
들어가며플로이드-워셜은 "모든 정점 쌍 사이의 최단 경로"를 구하는 대표적인 알고리즘이다. 이 포스팅에서는 백준 11403번 문제를 통해 플로이드-워셜의 본질을 파악하고, 최단 거리가 아닌 "경로 존재 여부" 변형을 다룬다. 단순히 "삼중 for문으로 푼다"는 개념을 넘어서, 왜 k를 가장 바깥 루프에 두는지, 인접 행렬과 그래프 탐색의 차이는 무엇인지, BFS/DFS 대신 플로이드-워셜을 선택하는 기준은 무엇인지 등 구현하며 고민했던 지점들을 공유한다.플로이드-워셜 이란?모든 정점 쌍의 경로다음과 같은 그래프가 있다고 하자.1 -> 22 -> 3Q1. 1에서 3으로 갈 수 있나?직접 확인: graph[1][3] = 0 (간선 없음)간접 확인: 1 -> 2 -> 3 (경로 존재)플로이드-워셜은 이처럼 "..