import sys
def find(x):
if home[x] < 0:
return x
home[x] = find(home[x])
return home[x]
V, E = map(int, sys.stdin.readline().split())
home = [-1] * (V + 1)
arr = []
answer, cnt = 0, 0
for _ in range(E):
a, b, c = map(int, sys.stdin.readline().split())
arr.append([c, a, b])
# 가중치로 오름차순 정렬
arr.sort(key=lambda x: x[0])
for i in range(E):
weight, a, b = arr[i]
# 연결이 되었는 지 확인
f_a, f_b = find(a), find(b)
# 연결X 라면 가중치 저장하고, 둘이 연결시키기
if f_a != f_b:
home[f_b] = f_a
answer += weight
cnt += 1
# V개의 정점의 그래프의 최소 간선 수는 V-1
if cnt == V-1:
break
print(answer)
'파이썬 코테 준비' 카테고리의 다른 글
[백준 1774] 우주신과의 교감 - Python(파이썬) (0) | 2021.03.21 |
---|---|
[백준 4386] 별자리 만들기 - Python(파이썬) (0) | 2021.03.21 |
[백준 9372] 상근이의 여행 - Python(파이썬) (0) | 2021.03.21 |
[백준 20040] 사이클 게임 - Python(파이썬) (0) | 2021.03.21 |
[백준 1717] 집합의 표현 - Python(파이썬) (0) | 2021.03.11 |
댓글