2606번 - 바이러스
다른 부분은 문제없고 40~44번째 줄에 대한 질문입니다.
주석 친 부분은 구글링해서 참고한 정답이고 현재 코드는 제 코드 입니다.
34,35 번째 줄에서 1이 무조건 root 에 오게 설정을 해주었습니다.
계속 틀렸습니다가 나오는데 반례를 못찻겠어서 질문 드립니다!
input
3
2
1 3
2 3
이렇게 넣으면
parent[1] = 2
parent[2] = 2
parent[3] = 1
이 되어, 이 코드는 정답인 3이 아니라, 1을 출력하게 됩니다.
위의 제가 든 예시의 출력이 0이 될 거 같네요.
1번 컴퓨터가 웜 바이러스에 걸렸을 때, 1번 컴퓨터를 통해 웜 바이러스에 걸리게 되는 컴퓨터의 수를 출력하는 문제였군요... 반례를 잘못 입력해서 삭제했습니다.
yonsweng님의 반례에서 올바른 정답은 2입니다. 1로 인해 2와 3이 감염되기 때문입니다.
올려주신 코드는 Union 함수에서
a와 b가 다를 때, b의 부모를 a로 '무조건' 지정하고 있습니다.
따라서, a와 b 중 누가 더 작은지 판단해야 합니다.
댓글을 작성하려면 로그인해야 합니다.
rkdalstjd9 4년 전
다른 부분은 문제없고 40~44번째 줄에 대한 질문입니다.
주석 친 부분은 구글링해서 참고한 정답이고 현재 코드는 제 코드 입니다.
34,35 번째 줄에서 1이 무조건 root 에 오게 설정을 해주었습니다.
계속 틀렸습니다가 나오는데 반례를 못찻겠어서 질문 드립니다!