https://www.acmicpc.net/problem/1647
1647๋ฒ: ๋์ ๋ถํ ๊ณํ
์ฒซ์งธ ์ค์ ์ง์ ๊ฐ์ N, ๊ธธ์ ๊ฐ์ M์ด ์ฃผ์ด์ง๋ค. N์ 2์ด์ 100,000์ดํ์ธ ์ ์์ด๊ณ , M์ 1์ด์ 1,000,000์ดํ์ธ ์ ์์ด๋ค. ๊ทธ ๋ค์ ์ค๋ถํฐ M์ค์ ๊ฑธ์ณ ๊ธธ์ ์ ๋ณด๊ฐ A B C ์ธ ๊ฐ์ ์ ์๋ก ์ฃผ์ด์ง๋๋ฐ A๋ฒ
www.acmicpc.net

์ ์ฒด ๊ทธ๋ํ๋ฅผ 2๊ฐ๋ก ๋๋๋๋ฐ ๊ทธ ๋๋ ์ง ๊ทธ๋ํ ์์์๋ ์๋ก ๋ค ์ฐ๊ฒฐ์ด ๋ผ ์์ด์ผ ํ๋ค๋ ์๊ธฐ..... (๊ทผ๋ฐ ๋์ฒด ์์ญ์ด๐ ์๊ธฐ๋ ์ ๋์จ๊ฑฐ์ง???)
๐์ ๊ทผ ๋ฐฉ๋ฒ
- ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ์ ์ด์ฉํด์ ์ต์์ ์ฅ ํธ๋ฆฌ๋ฅผ ํ๋ ๋ง๋ฌ
- ๊ทธ ์ค์์ ๊ฐ์ฅ ๋น์ผ ๊ฐ์ ์ ํ๋ ์์ค๋ค (๊ทธ๋์ผ ์ต์ ๋น์ฉ์ด ๋๋๊น!)
- ๊ทธ๋ฌ๋ฉด ์์ฐ์ค๋ฝ๊ฒ ๊ทธ๋ํ๊ฐ 2๊ฐ๋ก ๋ถ๋ฆฌ๋๋ค!
๊ทธ๋ฆฌ๊ณ !
import sys input = sys.stdin.readline
์ฒ์์ ํ์ด์ฌ์ผ๋ก ์ ์ถํ๋๋ ์๊ฐ์ด๊ณผ๊ฐ ๋์ stdin.readline์ ์ฌ์ฉํ๋๋ ํต๊ณผํจ!
(๋๊ฐ์ ์ฝ๋ pypy๋ก ๋ด๋ฉด ํต๊ณผํจ)
โ 10-07 ์ถ๊ฐ
์ด ๋ฌธ์ ๋ ์๋์๊ณ ํฌ๋ฃจ์ค์นผ ์จ์ ํ์๋ ๋ค๋ฅธ ๋ฌธ์ ์์ง๋ง! (์ฝํ ์๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ๋ ์ ์ฌ๋ฆผ)
๊ฐ์ ์ ๊ฐฏ์๊ฐ E๊ณ , ๋ ธ๋์ ๊ฐฏ์๊ฐ V๋ผ๊ณ ํ ๋ ์๊ฐ๋ณต์ก๋๋ O(E*logV) ๋ผ๊ณ ํ๋ค. ํ๋งํฐ๋ฉด ๋ ๋ ธ๋ฒจ์ ๋ฐ์๋ป...ใ ใ ใ ใ ใ ใ ใ
์๊ฐ๋ณต์ก๋๋ ์ ๊ฒฝ์จ๊ฐ๋ฉด์ ํ์ด์ผ๊ฒ ๋ค๋ ๋ค์ง!๐
๐โโ๏ธ ์์ฑํ ์ฝ๋
import sys def backjoon1647(): input = sys.stdin.readline #๋ถ๋ชจ๋
ธ๋ ํ์ธ def find_parent(parent, x): if parent[x] != x: parent[x] = find_parent(parent, parent[x]) return parent[x] #ํฉ์น๊ธฐ def union_parent(parent, x, y): x = find_parent(parent, x) y = find_parent(parent, y) if x < y: parent[y] = x else: parent[x] = y #์
๋ ฅ๋ฐ๋ ๋ถ๋ถ n, m = map(int, input().split()) graph = [] for i in range(m): a, b, c = map(int, input().split()) graph.append( (c, a, b) ) #cost๋ก ์ ๋ ฌํ๋ ค๊ณ #๋ถ๋ชจ๋
ธ๋ ์์ฑ ํ ์๊ธฐ์์ ์ผ๋ก ์ค์ parent = [0] * (n+1) for i in range(n+1): parent[i] = i graph.sort() #๋น์ฉ ์์๋ก ์ ๋ ฌ lastCost = 0 #๋ง์ง๋ง ๊ฐ์ (๋์ค์ ๋นผ๋ ค๊ณ ) result = 0 for c,a,b in graph: if find_parent(parent, a) != find_parent(parent, b): union_parent(parent, a, b) result += c lastCost = c answer = result - lastCost print(answer)
'๐๊ณต๋ถ > ์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค Lv.2] 2๊ฐ ์ดํ๋ก ๋ค๋ฅธ ๋นํธ (0) | 2021.05.18 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค Lv.3] ๊ธฐ์ง๊ตญ ์ค์น (0) | 2021.04.28 |
[ํ๋ก๊ทธ๋๋จธ์ค Lv.3] ์ซ์ ๊ฒ์ (0) | 2021.04.27 |
[ํ๋ก๊ทธ๋๋จธ์ค Lv.3] ํ์ ํฐํธ๋ฆฌ๊ธฐ (0) | 2021.04.20 |
[๋ฐฑ์ค] 14889๋ฒ ์คํํธ์ ๋งํฌ (0) | 2021.01.07 |
๋๊ธ