-
11404번: 플로이드
첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가
www.acmicpc.net
코드
import sys n = int(input()) m = int(input()) inf = sys.maxsize destination = list([inf]*n for _ in range(n)) def floyd(): for k in range(n): for i in range(n): for j in range(n): if i != j and destination[i][j] > destination[i][k]+destination[k][j]: destination[i][j] = destination[i][k] +destination[k][j] for _ in range(m): a, b, c = map(int,input().split()) if destination[a-1][b-1] > c: destination[a-1][b-1] = c floyd() for i in destination: for j in i: if j==inf: print(0, end=' ') else: print(j, end=' ') print()
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 11725번 트리의 부모 찾기 (파이썬) (0) 2022.01.05 [백준] 3273번 두 수의 합 (파이썬) (0) 2022.01.05 [백준] 11657번 타임머신 (파이썬) (0) 2022.01.05 [백준] 1504번 특정한 최단 경로 (파이썬) (0) 2022.01.05 [백준] 1753번 최단경로 (파이썬) (0) 2022.01.05