백준 1717 집합의 표현 Python

Derhon·2023년 12월 13일
0

백준 1717 집합의 표현

5.34m

나의 답

import sys
input = sys.stdin.readline
sys.setrecursionlimit(10 ** 5)

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

def union(a, b):
    a = find(a)
    b = find(b)
    if a < b:
        parent[b] = a
    else:
        parent[a] = b

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

for i in range(m):
    op, a, b = list(map(int, input().rstrip().split()))
    if op == 0:
        union(a, b)
    if op == 1:
        if find(a) == find(b): print('YES')
        else: print('NO')

직전에 유니온 파인드 알고리즘을 공부해서...
애초에 유니온 파인드 연관 문제이기 때문에 엄청 조금 걸렸다!
과연 다음에 다시 풀어도 이만큼 걸릴까!? 제발!

profile
🧑‍🚀 이사했어요 ⮕ https://99uulog.tistory.com/

0개의 댓글