https://programmers.co.kr/learn/courses/30/lessons/42861
def solution(n, costs):
answer = 0
costs.sort(key=lambda x: x[2])
parent = [-1] * n
for s, e, c in costs:
r1 = get_root(parent, s)
r2 = get_root(parent, e)
if r1 == r2:
continue
union(parent, r1, r2)
answer += c
return answer
def union(parent, r1, r2):
if abs(parent[r1]) < abs(parent[r2]):
r1, r2 = r2, r1
parent[r1] += parent[r2]
parent[r2] = r1
def get_root(parent, curr):
if parent[curr] < 0:
return curr
parent[curr] = get_root(parent, parent[curr])
return parent[curr]