티스토리 뷰
https://www.acmicpc.net/problem/11404
import sys
# Inf의 범위가 작으면 틀릴 수 있으니 주의!!
Inf = 100000000
n = int(sys.stdin.readline())
m = int(sys.stdin.readline())
d = [[Inf] * n for _ in range(n)]
for i in range(m):
a, b, c = map(int, sys.stdin.readline().split())
if d[a-1][b-1] > c:
d[a-1][b-1] = c
for k in range(n):
for i in range(n):
for j in range(n):
# 자기 자신으로 오는 경우
if j == i:
d[i][j] = 0
# k를 거쳐서 가는 것, 원래 값 중 최소 값
else:
d[i][j] = min(d[i][j], d[i][k] + d[k][j])
for i in range(n):
for j in range(n):
if d[i][j] == Inf:
print(0, end = ' ')
else:
print(d[i][j], end = ' ')
print()
'Algorithm > Baekjoon' 카테고리의 다른 글
[백준] 10988 : 팰린드롬인지 확인하기 - Python (0) | 2020.07.15 |
---|---|
[백준] 10026 : 적록색약 - Python (0) | 2020.07.10 |
[백준] 11403 : 경로 찾기 - Python (0) | 2020.07.09 |
[백준] 14503 : 로봇 청소기 - Python (0) | 2020.07.07 |
[백준] 1475 : 방 번호 - Python (0) | 2020.07.06 |