문제풀이/그래프

[파이썬] [그래프] 백준 1922 네트워크 연결

승무_ 2022. 2. 7. 21:55

문제

https://www.acmicpc.net/problem/1922

 

1922번: 네트워크 연결

이 경우에 1-3, 2-3, 3-4, 4-5, 4-6을 연결하면 주어진 output이 나오게 된다.

www.acmicpc.net

코드

import sys
input=sys.stdin.readline

def find(x):
    if parent[x]!=x:
        parent[x]=find(parent[x])
    return parent[x]

def union(a,b):
    a=find(a)
    b=find(b)

    if a<b:
        parent[b]=a
    else:
        parent[a]=b


n=int(input())
m=int(input())

parent=[0]*(n+1)
for i in range(n+1):
    parent[i]=i

array=[]
for _ in range(m):
    a,b,cost=map(int, input().split())
    array.append((cost,a,b))

array.sort()
result=0

for i in array:
    cost,a,b=i
    if find(a)!=find(b):
        union(a,b)
        result+=cost
print(result)