본문 바로가기
알고리즘

서로소 집합(disjoint set) 연습

by 매화of사군자 2020. 1. 14.

서로소 집합 관련 문제

해결 방법 : 각 사람의 친구관계를 dict으로 설정하여 Q가 입력되면 해당하는 value(친구의 수)를 출력하고 M이 입력되면 각 value를 합친다.

 

문제점 : 이 문제에서 disjoint set이 어디에 해당하는지 모르겠다.

 

코드

더보기

n, m = map(int,input().split())

 

input_info = []

 

human_relations = dict()

 

for i in range(1,n+1):

    human_relations[i] = 1

 

for i in range(m):

    a = input().split()

    if a[0] == 'Q':

        a[1] = int(a[1])

        print(human_relations[a[1]])

    elif a[0] == 'M':

        a[1] = int(a[1])

        a[2] = int(a[2])

        num_friend_1 = human_relations[a[1]]

        num_friend_2 = human_relations[a[2]]

        human_relations[a[1]] = num_friend_1 + num_friend_2

        human_relations[a[2]] = human_relations[a[1]]





'알고리즘' 카테고리의 다른 글

백준_4963_섬의 개수  (0) 2020.01.20
백준_1389_케빈 베이컨의 6단계 법칙  (0) 2020.01.17
백준_2178_미로 탐색  (0) 2020.01.16
백준_7576_토마토  (0) 2020.01.15
백준_15649_N과 M(1)  (0) 2020.01.13

댓글