[TIL #23] 23์ผ์ฐจ ์ค๋์ ๊ณต๋ถ (2023.03.25 ํ )
2023. 3. 26. 14:39ใToday I Learned
TIL 2023.03.25 ๐ฃ
์ ~ ๊ธ TIL์ ์์ฑํ์ง ์์๋๋ฐ,,,, ๊ณต๋ถ๋ฅผ ์ํ๊ฑด ์๋๊ณ ์์ฑํ๋๊ฑธ ์์์ต๋๋ค.... ์ค๋ง์ค๋ฝ๋ค์ ์ ์์ ์๊ฒ...
์ค๋ ๋ฐฐ์ด ๊ฒ ๐ฉ๐ป๐ป
์๊ณ ๋ฆฌ์ฆ
- ๋ฐฑ์ค 1389 : ์ผ๋น๋ฒ ์ด์ปจ ์๊ฐ ์ต์์ธ ์ฌ๋ ๊ตฌํ๊ธฐ
- ๋ชจ๋ ์ฌ๋๊ณผ ์ผ๋น ๋ฒ ์ด์ปจ ๊ฒ์์ ํ์ ๋, ๋์ค๋ ๋จ๊ณ์ ํฉ
- ํ๋ก์ด๋ ์์
์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋ฉด ์ฝ๊ฒ ํ ์ ์๋ ๋ฌธ์ ์ด๋ค. ๊ทธ๋ฐ๋ฐ ์ค๋๋ง์ ๊ตฌํํ๋๋ ์ฌ์ค ๊ธฐ์ต์ด ์ ์๋์ ์ ๋ฅผ ๋จน์๋ค.
# ์ผ๋น๋ฒ ์ด์ปจ : ์ผ๋น ๋ฒ ์ด์ปจ์ ์๊ฐ ๊ฐ์ฅ ์์ ์ฌ๋์ ์ถ๋ ฅ # ํ๋ก์ด๋ ์์ ์๊ณ ๋ฆฌ์ฆ ๊ตฌํ๊ธฐ import sys n, m = map(int, sys.stdin.readline().rstrip().split()) graph = [[0] * n for _ in range(n)] for _ in range(m): a, b = map(int, sys.stdin.readline().rstrip().split()) graph[a - 1][b - 1] = 1 graph[b - 1][a - 1] = 1 for i in range(n): for j in range(n): for k in range(n): if j == k: continue if graph[j][i] and graph[i][k]: # j์์ i๋ฅผ ๊ฑฐ์ณ k๋ก ๊ฐ ์ ์๋ค๋ฉด if graph[j][k] == 0: # j - k ์ฐ๊ฒฐ๋์ง ์์ ๊ฒฝ์ฐ graph[j][k] = graph[j][i] + graph[i][k] else: graph[j][k] = min(graph[j][k], graph[j][i] + graph[i][k]) result_idx = 0 min_count = 10e9 for i in range(n): count = 0 for j in range(n): count += graph[i][j] # i์ ์ผ๋น ๋ฒ ์ด์ปจ ์ ๊ตฌํ๊ธฐ if min_count > count: min_count = count result_idx = i print(result_idx + 1)
React
- ๋ฆฌ์กํธ ๊ฐ์ ์น์ 2 ์ ๋ฆฌ ๋ด์ฉ์ ํฌ์คํ ํ๋ค. ๋ด์ฉ์ด ๊ธธ์ด์ ๋ ๊ฐ์ ํฌ์คํ ์ผ๋ก ๋๋ ์ฌ๋ฆด ์์ ์ด๋ค.
๊ธฐํ ๐ค
์ถ๊ฐ์ ์ผ๋ก ํ๋ฉด ์ข์ ๊ฒ
'Today I Learned' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[TIL #25] 25์ผ์ฐจ ์ค๋์ ๊ณต๋ถ (2023.03.27 ์) (0) | 2023.03.28 |
---|---|
[TIL #24] 24์ผ์ฐจ ์ค๋์ ๊ณต๋ถ (2023.03.26 ์ผ) (0) | 2023.03.26 |
[TIL #22] 22์ผ์ฐจ ์ค๋์ ๊ณต๋ถ (2023.03.21 ํ) (0) | 2023.03.21 |
[TIL #21] 21์ผ์ฐจ ์ค๋์ ๊ณต๋ถ (2023.03.20 ์) (0) | 2023.03.21 |
[TIL #20] 20์ผ์ฐจ ์ค๋์ ๊ณต๋ถ (2023.03.19 ์ผ) (0) | 2023.03.19 |