https://www.acmicpc.net/problem/11404
하 처음에 자기 자신으로 가는 i == j 의 경우를 0으로 초기화안해서 요상하게 나왔다..
이게 아직도 플로이드 워셜의 알고리즘이 완전히 확 와닿지는 않네
중간에 거쳐가는 노드의 순서는 알고리즘에 영향이 없는건가?
뒤에서 더 적은 비용으로 바뀐 걸 앞에서 다시 적용할 수 없는거잖아... 내 수학 머리..ㅠ
아 어차피 중간경유한 순서는 더하기만 하는거고 차피 전체 다 훝으니까 되는 거 같다. 이게 와닿을랑 말랑 한다
무한은 1e9로 설정해주었다
import sys
input = sys.stdin.readline
INF = 1e9
n = int(input())
m = int(input())
bus_map = [[INF] * n for _ in range(n)]
for i in range(n):
for j in range(n):
if i == j:
bus_map[i][j] = 0
for _ in range(m):
a, b, c = map(int, input().split())
bus_map[a - 1][b - 1] = min(bus_map[a - 1][b - 1], c)
def Floyd(bus_map, n):
for k in range(n):
for i in range(n):
for j in range(n):
bus_map[i][j] = min(bus_map[i][j], bus_map[i][k] + bus_map[k][j])
Floyd(bus_map, n)
for el in bus_map:
for i in el:
if i >= INF:
print(0, end = ' ')
else: print(i, end = ' ')
print()
'코테 공부 > python' 카테고리의 다른 글
[프로그래머스] #12945 Python 피보나치 수 (0) | 2023.07.22 |
---|---|
[백준] #2178 Python 미로탐색 bfs (0) | 2023.07.10 |
[백준] #11403 Python 세미? 플로이드 워셜 (2) | 2023.06.30 |
[백준] #1260 Python DFS와 BFS (1) | 2023.06.29 |
[프로그래머스] 같은 숫자는 싫어 -stack (0) | 2023.06.28 |