본문 바로가기
> 알고리즘 문제 풀이/BOJ

4195-친구 네트워크 (python)

by bky373 2020. 10. 12.
def find(x):
    if x != parents[x]:
        parents[x] = find(parents[x])
    return parents[x]

def union(x, y):
    root1 = find(x)
    root2 = find(y)

    if root1 != root2:
        parents[root2] = root1
        numbers[root1] += numbers[root2]

tc = int(input())

for _ in range(tc):
    parents = dict()
    numbers = dict()

    f = int(input())
    
    for _ in range(f):
        x, y = input().split()
        
        if x not in parents:
            parents[x] = x
            numbers[x] = 1
        if y not in parents:
            parents[y] = y
            numbers[y] = 1

        union(x, y)

        print(numbers[find(x)])

'> 알고리즘 문제 풀이 > BOJ' 카테고리의 다른 글

11004-K번째 수 (python)  (0) 2020.10.12
2751-수 정렬하기 2 (python)  (0) 2020.10.12
7490-0 만들기 (python)  (0) 2020.10.11
2747-피보나치 수 (python)  (0) 2020.10.11
10989-수 정렬하기 3 (python)  (0) 2020.10.11

댓글