DHistory

[Baekjoon] Shortest Path - 11403 경로 찾기 본문

Computer Science/Algorithm

[Baekjoon] Shortest Path - 11403 경로 찾기

ddu0422 2023. 10. 30. 18:57

문제

 

11403번: 경로 찾기

가중치 없는 방향 그래프 G가 주어졌을 때, 모든 정점 (i, j)에 대해서, i에서 j로 가는 길이가 양수인 경로가 있는지 없는지 구하는 프로그램을 작성하시오.

www.acmicpc.net

 

풀이

import sys

INF = 1e9

n = int(sys.stdin.readline().rstrip())
graph = [[INF] * (n + 1) for _ in range(n + 1)]

for i in range(1, n + 1):
    numbers = list(map(int, sys.stdin.readline().rstrip().split()))
    for index, value in enumerate(numbers):
        if value:
            graph[i][index + 1] = 1


for k in range(1, n + 1):
    for i in range(1, n + 1):
        for j in range(1, n + 1):
            graph[i][j] = min(graph[i][j], graph[i][k] + graph[k][j])


for i in range(1, n + 1):
    for j in range(1, n + 1):
        print(0 if graph[i][j] == INF else 1, end=' ')
    print()

 

채점 결과