๋ฌธ์
https://www.acmicpc.net/problem/11404
๋ด ๋ฌธ์ ํ์ด
import sys
import math
n = int(sys.stdin.readline().strip())
m = int(sys.stdin.readline().strip())
INF = math.inf
table = [[INF for _ in range(n)] for _ in range(n)]
for _ in range(m):
a, b, c = map(int, sys.stdin.readline().strip().split())
table[a-1][b-1] = min(table[a-1][b-1], c)
for k in range(n):
for i in range(n):
for j in range(n):
if i == j:
table[i][j] = 0
else:
table[i][j] = min(table[i][j], table[i][k] + table[k][j])
for i in range(i):
for j in range(j):
if table[i][j] == INF:
table[i][j] = 0
print('\n'.join(' '.join(map(str, i)) for i in table))
๐ ํ๋ก์ด๋ ์์ ๋ฌธ์
- 3์ค for๋ฌธ ์ด์ฉ, k๋ ์ค๊ฐ ๊ฒฝ๋ก๋ผ๊ณ ์ค์ ํ์ฌ ํ๋ก์ด๋ ์์ ์๊ณ ๋ฆฌ์ฆ์ ์ด์ฉํ๋ค.
- ์ถ๋ฐ ์ง์ ๊ณผ ๋์ฐฉ ์ง์ ์ด ๊ฐ์ ๊ฒฝ์ฐ๋ ์์ผ๋ฏ๋ก i == j ์ ๊ฒฝ์ฐ 0์ ๋ฃ์ด์ฃผ์๋ค.
- ๊ทธ ์ธ์ ๊ฒฝ์ฐ์๋ ๊ธฐ์กด์ ๊ฐ๊ณผ k๋ฅผ ๊ฑฐ์น ๊ฒฝ์ฐ์ ๊ฐ ์ค ๋ ์ผ ๊ฐ์ ์ฐพ์ ๋์ฒดํ๋ค.
+ ์ด ๋ฌธ์ ์ฒ๋ผ ์ต์๊ฐ์ ์ ๋ฐ์ดํธํด์ฃผ์ด์ผ ํ๋ ๊ฒฝ์ฐ, ์ฒ์ ๋ณ์๋ฅผ ์ด๋ค ๊ฐ์ผ๋ก ์ด๊ธฐํํ ์ง ๊ฒฐ์ ํ๊ธฐ ์ด๋ ต๋ค.
์ ์ผ ํด ๊ฒ์ผ๋ก ์์๋๋ ์ต์๊ฐ๋ณด๋ค๋ ๋ ํฐ ๊ฐ์ผ๋ก ์ค์ ํด์ฃผ์ด์ผ ํ๊ธฐ ๋๋ฌธ์ด๋ค.
ํ์ง๋ง ์์ ๊ฐ์ด math.inf ๋ฅผ ์ฌ์ฉํด์ฃผ๋ฉด ๋ฌดํ๋ ๊ฐ์ผ๋ก ์ด๊ธฐํํ ์ ์์ผ๋ฏ๋ก ํธ๋ฆฌํ๋ค.
๐ก ํผ๋๋ฐฑ
- ์ถ๋ฐ ์ง์ ๊ณผ ๋์ฐฉ ์ง์ ์ด ๊ฐ์ ๊ฒฝ์ฐ๋ง ์ ์์ธ์ฒ๋ฆฌํด์ฃผ๋ฉด ๋๋ ๋ฌธ์ !
ํ๋ก์ด๋ ์์ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ์์ ์ธ ๊ฒ ๊ฐ๋ค.
'4๏ธโฃ Python > Problem Solving' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python Algorithm] ๊ฐ์ฅ ๊ธด ๋ฐ์ดํ ๋ ๋ถ๋ถ ์์ด BOJ #11054 (0) | 2022.06.27 |
---|---|
[Python Algorithm] ๋ ์ด์ ํต์ BOJ #6087 (0) | 2022.06.24 |
[Python Algorithm] ๊ฒฝ๋ก ์ฐพ๊ธฐ BOJ #11403 (feat. BFS, ํ๋ก์ด๋ ์์ ) (0) | 2022.06.23 |
[Python Algorithm] ๊ฐ์ด๋ฐ๋ฅผ ๋งํด์ BOJ #1655 (0) | 2022.06.14 |
[Python Algorithm] ๊ฐ์์ค ๋ฐฐ์ BOJ #11000 (0) | 2022.06.13 |
๋๊ธ