728x90
๐๋ฌธ์ ์ถ์ฒ
๋ฐฑ์ค ๋จ๊ณ๋ณ ๋ฌธ์ ํ์ด : ์ต๋จ๊ฒฝ๋ก
https://www.acmicpc.net/problem/11404
โ ๋ฌธ์
๐ ํ์ด ์ฝ๋
input = open(0).readline
def solution(n):
for k in range(1,n+1): # ์ค๊ฐ์ 1~n๊น์ง์ ์ ๋ฅ์ฅ์ ๋ค๋ ๋ค๊ฐ๋ ๊ฒฝ์ฐ
for i in range(1,n+1): # ์ถ๋ฐ ์ ๋ฅ์ฅ
for j in range(1,n+1): # ๋์ฐฉ ์ ๋ฅ์ฅ
dp[i][j] = min(dp[i][j], dp[i][k]+dp[k][j]) # ํ์ฌ i์์ j์ ๊ฒฝ๋ก ๋ณด๋ค k๋ฅผ ๋ค๋ ๋ค๊ฐ๋ ๊ฒ์ด ๋น ๋ฅด๋ค๋ฉด
for i in range(1,n+1): # 1~n ์ ๋ฅ์ฅ ํ์ธ
ans = ''
for j in range(1,n+1):
cost = dp[i][j]
ans += str(0) if cost == inf else str(cost)
ans += ' '
print(ans[:-1])
return
if __name__ == '__main__':
n = int(input())
m = int(input())
inf = float('inf')
dp = [[inf]*(n+1) for _ in range(n+1)] # dp ์์ฑ
for i in range(n+1) : # ์ถ๋ฐ ๋์ฐฉ์ด ๊ฐ์ ๊ฒฝ์ฐ๋ 0
dp[i][i] = 0
for _ in range(m):
sta,end,w = map(int,input().split())
dp[sta][end] = min(dp[sta][end], w) # ๋์ผํ ์ถ๋ฐ, ๋์ฐฉ์ง์ ๋ค๋ฅธ ๋
ธ์ ์ด ๋ค์ด์ฌ ์ ์์ผ๋ฏ๋ก
solution(n)