IT/알고리즘
[백준 Python] 1717번 집합의 표현
와잉
2025. 2. 21. 19:40
백준 파이썬 1717번 집합의 표현
Gold 5
https://www.acmicpc.net/problem/1717
집합에 대한 문제다. 유니온 파인드를 활용해 풀어주면 된다.
더보기
5 5
0 1 2
0 2 3
0 4 5
0 1 5
1 1 4
막히면 위의 예시의 결과가 YES 가 나오는지 확인해보면 된다.
import sys
input = sys.stdin.readline
sys.setrecursionlimit(10**9)
def find_parent(x):
if r[x] != x:
r[x] = find_parent(r[x])
return r[x]
def dfs(x, y):
x = find_parent(x)
y = find_parent(y)
if x < y:
r[y] = x
else:
r[x] = y
n, m = map(int, input().split())
r = [i for i in range(n+1)]
for _ in range(m):
o, a, b = map(int, input().split())
if o == 0:
dfs(a,b)
else:
if find_parent(a) == find_parent(b):
print("YES")
else:
print("NO")
반응형