From dbc8ce8105382bcd74e337414623930a2cedfefc Mon Sep 17 00:00:00 2001 From: Youjiiin Date: Tue, 23 Jan 2024 16:23:47 +0900 Subject: [PATCH] =?UTF-8?q?=EB=8F=84=EC=8B=9C=20=EB=B6=84=ED=95=A0=20?= =?UTF-8?q?=EA=B3=84=ED=9A=8D=5F=EC=9C=A0=EC=A7=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\354\234\240\354\247\204.py" | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 "\354\235\264\354\275\224\355\205\214/10 \352\267\270\353\236\230\355\224\204 \354\235\264\353\241\240/\353\217\204\354\213\234_\353\266\204\355\225\240_\352\263\204\355\232\215/\354\234\240\354\247\204.py" diff --git "a/\354\235\264\354\275\224\355\205\214/10 \352\267\270\353\236\230\355\224\204 \354\235\264\353\241\240/\353\217\204\354\213\234_\353\266\204\355\225\240_\352\263\204\355\232\215/\354\234\240\354\247\204.py" "b/\354\235\264\354\275\224\355\205\214/10 \352\267\270\353\236\230\355\224\204 \354\235\264\353\241\240/\353\217\204\354\213\234_\353\266\204\355\225\240_\352\263\204\355\232\215/\354\234\240\354\247\204.py" new file mode 100644 index 0000000..3fdabb6 --- /dev/null +++ "b/\354\235\264\354\275\224\355\205\214/10 \352\267\270\353\236\230\355\224\204 \354\235\264\353\241\240/\353\217\204\354\213\234_\353\266\204\355\225\240_\352\263\204\355\232\215/\354\234\240\354\247\204.py" @@ -0,0 +1,42 @@ +def find_parent(parent, x): + if parent[x] != x: + parent[x] = find_parent(parent, parent[x]) + return parent[x] + +def union_parent(parent, a, b): + a = find_parent(parent, a) + b = find_parent(parent, b) + if a < b: + parent[b] = a + else: + parent[a] = b + +n, m = map(int, input().split()) +parent = [0] * (n + 1) + +# 간선들 리스트 +edges = [] +# 최종 비용 +result = 0 + +for i in range(n + 1): + parent[i] = i + +for _ in range(m): + a, b, cost = map(int, input().split()) + edges.append((cost, a, b)) + +edges.sort() +last = 0 #가장 비용이 큰 간선 + +for edge in edges: + cost, a, b = edge + + # 사이클이 발생하지 않는 경우만 집합에 포함 + if find_parent(parent, a) != find_parent(parent, b): + union_parent(parent, a, b) + result += cost + last = cost # 오름차순 정렬해서 마지막 값이 가장 크기 때문 + +print(result - last) +# 마을을 두개로 하려고 길을 하나 끊는건가? \ No newline at end of file