[백준] 11403번-(Python 파이썬) - Floyd-Warshall

Choe Dong Ho·2021년 6월 26일
0

백준(python)

목록 보기
33/47

문제링크 : 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])
profile
i'm studying Algorithm

0개의 댓글