CodingTest/SW Expert Academy
[ SW Expert Academy ] 5248. 그룹 나누기 # 다시 풀기 #
EEOOOO
2022. 11. 13. 14:07
서로소 집합 만드는 알고리즘이... 헷갈린다. 간만에 푸니까 ㅠ
정말 기본 알고리즘을 많이 까먹었구나... 하..
1 차 제출 [ 3 / 10 ] Fail
일단 기억나는대로 작성한 코드............
def find_set(x):
if x == p[x]:
return x
return find_set(p[x])
def union(x, y):
if x > y:
p[find_set(x)] = find_set(y)
else:
p[find_set(y)] = find_set(x)
if __name__ == "__main__":
T = int(input())
p = {}
for test_case in range(1, T+1):
answer = 0
n, m = map(int, input().split())
teams = list(map(int, input().split()))
for i in range(1,n+1):
p[i] = i
for i in range(0, len(teams), 2):
union(teams[i], teams[i+1])
answer = len(set(p.values()))
print("#{} {}".format(test_case, answer))
... 왜 틀린지 모르겠다.. 왜지?