practivceAlgorithm/백준
[백준][Python] 1717 : 집합의표현
findTheValue
2021. 7. 10. 16:56

시간초과 및 메모리초과 때문에 10트정도 했다.
원소를 1개씩 가지고 있는 집합들을 합치고 어떤 원소가 이미 같은 집합으로 합쳐져있는지 확인하는
Union-Find구현문제이다.
import sys
input = sys.stdin.readline
sys.setrecursionlimit(100000)
n,m = map(int,input().split())
parent = [i for i in range(n+1)]
def Union(a,b):
a = Find(a)
b = Find(b)
if a>b:
parent[a] = b
else:
parent[b] = a
def Find(u):
if parent[u]==u:
return u
parent[u] = Find(parent[u])
return parent[u]
for _ in range(m):
flag, x, y = map(int,input().split())
if flag:
if Find(x) == Find(y):
print("YES")
else:
print("NO")
else:
Union(x,y)
재귀 사용시 런타임에러, 시간초과, 메모리초과 나면
import sys
input = sys.stdin.readline
sys.setrecursionlimit(100000)
무조건 넣어보기... 코드는 1트했는데 저거때매 삽질함.