Skip to content

Commit d421e34

Browse files
committed
[BOJ] #1717. 집합의 표현 / 골드 5 / 20분 / 성공
1 parent f4124f6 commit d421e34

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import sys
2+
sys.setrecursionlimit(10 ** 6) # 재귀 깊이 제한 늘리기
3+
input = sys.stdin.readline
4+
5+
# Union 연산(두 집합을 합치기 위한 함수)
6+
def union(a, b):
7+
p_a = find(a)
8+
p_b = find(b)
9+
10+
if p_a > p_b: # 값이 더 작은 쪽을 부모로 설정
11+
parent[p_a] = p_b
12+
else:
13+
parent[p_b] = p_a
14+
15+
# Find 연산(같은 집합에 속하는지 확인하기 위한 함수)
16+
def find(a):
17+
if a != parent[a]:
18+
parent[a] = find(parent[a]) # 경로 압축
19+
return parent[a]
20+
21+
# 연산 수행
22+
n, m = map(int, input().split())
23+
parent = [i for i in range(n + 1)] # 초기: 각 원소가 자기 자신을 부모로 가짐
24+
25+
for _ in range(m):
26+
flag, a, b = map(int, input().split())
27+
if flag == 0: # 합집합 연산
28+
union(a, b)
29+
else: # 같은 집합 확인 연산
30+
if find(a) == find(b):
31+
print("YES")
32+
else:
33+
print("NO")

0 commit comments

Comments
 (0)