본문 바로가기

프로그래밍

백준 1717 집합의 표현 - 파이썬 풀이 🦄

백준 1717 집합의 표현 - 파이썬 풀이 🦄

문제

  • DP 문제

Keypoints

  • 넣는 순서가 아닌 값(value)에 대해서, 개수를 추적한다.

Solution

n, m = map(int, input().split())
parent = [i for i in range(n+1)]

def find(x):
    if parent[x]==x:
        return parent[x]
    else:
        parent[x] = find(parent[x])
        return parent[x]

def union(x,y):
    x, y = find(x), find(y)
    if x < y :
        parent[y] = x
    elif x > y:
        parent[x] = y

import sys 
sys.setrecursionlimit(1000000)
for i in range(m):
    op, a,b  = map(int, sys.stdin.readline().strip().split())
    if op==1:
        if find(a)==find(b):
            print("YES")
        else:
            print("NO")
    else:
        union(a,b)

References

Problem Link