10216번 - Count Circle Groups
유니온파인드를 통해서 문제를 풀었습니다.
근데 답을 구하는 과정에서
처음에 ans=n이라고 놓고 merge 가 일어날때마다 n-- 해서 답을 출력하면 AC를 받습니다.
하지만
p를 오름차순으로 정렬하고,
for문을 이용해서 n-1까지 돌면서 서로 다른값들이 몇개 있는지 체크합니다.
그러게 되면 맨 처음값은 체크를 못하니까 ans+1을 해서 출력을 하는데
이 방법은 왜 틀렸는지 모르겠네요.
좀 알려주실수 있을까요?
<자문자답>
p[i]가 루트가 아닐 수 있다 . find 가 정확
댓글을 작성하려면 로그인해야 합니다.
his130 6년 전
유니온파인드를 통해서 문제를 풀었습니다.
근데 답을 구하는 과정에서
처음에 ans=n이라고 놓고 merge 가 일어날때마다 n-- 해서 답을 출력하면 AC를 받습니다.
하지만
p를 오름차순으로 정렬하고,
for문을 이용해서 n-1까지 돌면서 서로 다른값들이 몇개 있는지 체크합니다.
그러게 되면 맨 처음값은 체크를 못하니까 ans+1을 해서 출력을 하는데
이 방법은 왜 틀렸는지 모르겠네요.
좀 알려주실수 있을까요?