https://www.acmicpc.net/problem/11403

 

 

DFS로도 풀 수 있지만, 플로이드-워셜 알고리즘으로 풀리는 문제.

플로이드 워셜 알고리즘이란 

정점 i 에서 정점 j 로 가는 경로가 있는지 확인하고 싶을 때,

 

i 에서 j 로 가는 직통 길이 있니? matrix[i][j] == 1? 

k ( k = 모든 정점 ) 를 지나쳐 가는 길이 있니? matrix[i][k] == 1 and matrix[k][j] == 1?

 

를 확인하는 알고리즘. k에는 0부터 마지막 정점까지 모든 정점을 하나씩 대입한다.

플로이드 워셜 알고리즘에서는 최단 거리를 발견할 때마다 업데이트하지만

여기서는 최단 거리가 아니라 가는 경로 유무 1, 0으로 만 확인하면 된다.

 

 

'알고리즘 > BFS와 DFS' 카테고리의 다른 글

11724번. 연결 요소의 개수  (0) 2019.12.24
14502번. 연구소  (0) 2019.12.20
2206번. 벽 부수고 이동하기  (0) 2019.12.18
7576번. 토마토  (0) 2019.12.17
1012번. 유기농 배추  (0) 2019.12.13

+ Recent posts