https://www.acmicpc.net/problem/11404
11404번: 플로이드
첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가
www.acmicpc.net
# 11404 플로이드
n = int(input())
m = int(input())
INF = int(1e9)
graph = [[INF] * (n) for i in range(n)]
for _ in range(m):
i, j, cost = map(int, input().split())
if graph[i-1][j-1] > cost:
graph[i-1][j-1] = cost
for k in range(n):
for i in range(n):
for j in range(n):
if i == j:
continue
graph[i][j] = min(graph[i][j], graph[i][k]+graph[k][j])
for i in range(n):
for j in range(n):
if graph[i][j] == INF:
graph[i][j] = 0
for i in range(n):
print(*graph[i])
'Coding Test' 카테고리의 다른 글
Python 백준 알고리즘 5622 : 다이얼 (0) | 2023.02.09 |
---|---|
Python 백준 알고리즘 1197 : 최소 스패닝 트리 (0) | 2023.02.08 |
Python 백준 알고리즘 11657 : 타임머신 (0) | 2023.02.07 |
Python 백준 알고리즘 1516 : 게임 개발 (0) | 2023.02.02 |
Python 백준 알고리즘 1717 : 집합의 표현 (1) | 2023.02.02 |