disjoint set을 이용해서 문제를 풀었는데 파이썬3으로는 계속 런타임에러가 떠러 C로 짰더니 문제없이 통과가 되네요.
C에서의 런타임에러는 주로 배열 범위초과같은 문제 때문이었는데 파이썬에서 런타임에러가 발생하는 원인이 따로 존재하나요? 파이썬에서만 발생하는 런타임에러라든가...
파이썬 코드는 아래와 같습니다.
G = int(input())
P = int(input())
root = []
for i in range(G+1):
root+=[i]
def find(n):
if n==root[n]:
return n
root[n] = find(root[n])
return root[n]
list = []
for i in range(P):
list+=[int(input())]
ans=0
for p in list:
r = find(p)
if r==0:
break
root[r] = r-1
ans+=1
print(ans)
CodongCodong 4년 전
disjoint set을 이용해서 문제를 풀었는데 파이썬3으로는 계속 런타임에러가 떠러 C로 짰더니 문제없이 통과가 되네요.
C에서의 런타임에러는 주로 배열 범위초과같은 문제 때문이었는데 파이썬에서 런타임에러가 발생하는 원인이 따로 존재하나요? 파이썬에서만 발생하는 런타임에러라든가...
파이썬 코드는 아래와 같습니다.