코드 # 크루스칼 알고리즘 이용 import sys input = sys.stdin.readline def find(a,lst): if a != lst[a]: lst[a] = find(lst[a], lst) return lst[a] def union(a,b,lst): a = find(a,lst) b = find(b,lst) if a < b: lst[b] = a else: lst[a] = b n, m = map(int, input().split()) parent = [i for i in range(n+1)] edge = [] for _ in range(m): a,b,c = map(int, input().split()) edge.append((c,a,b)) edge.sort(key=lambda x: x[0]..
크루스칼 알고리즘
코드 # 모든 대학교로 이동 가능해야한다 -> 신장 트리 # 최소 비용 -> 최소 신장 트리 # 크루스칼 알고리즘 이용 import sys input = sys.stdin.readline def find(a, lst): if a != lst[a]: lst[a] = find(lst[a],lst) return lst[a] def union(a,b,lst): a = find(a, lst) b = find(b, lst) if a < b: lst[b] = a else: lst[a] = b n, m = map(int, input().split()) school = ['x', *input().rstrip().split()] # 인덱싱을 쉽게 하기 위해 'x'추가 parent = [i for i in range(n+1..
코드 # 크루스칼 알고리즘 import sys input = sys.stdin.readline def find(x, lst): if x != lst[x]: lst[x] = find(lst[x], lst) return lst[x] def union(a,b,lst): a = find(a, lst) b = find(b, lst) if a < b: lst[b] = a else: lst[a] = b n,m = map(int, input().split()) parent = [i for i in range(n+1)] edge = [] for _ in range(m): a,b,c = map(int, input().split()) edge.append((c,a,b)) edge.sort(key=lambda x: x[0])..