문제링크 : https://www.acmicpc.net/problem/11403
이번 문제는 문제 그대로 가중치가 없는 방향 그래프에서 경로가 있는지 없는지 구하는 프로그램을 작성해야한다. 플로이드 와샬 알고리즘을 이용하면 쉽게 구할 수 있다.
시작점(i)부터 거치는 점(k)을 거쳐 도착 점(j)으로 가는 길이 있다면 [i][j]는 1로 바꿔주면 된다.
import sys
input = sys.stdin.readline
inf = sys.maxsize
n = int(input())
graph = []
for _ in range(n):
graph.append(list(map(int, input().split())))
for k in range(n):
for i in range(n):
for j in range(n):
if graph[i][k] and graph[k][j]:
graph[i][j] = 1
for i in range(n):
print(*graph[i])