union-find를 사용했습니다. 코드 내용은 확실히 비교하려고 한부분 빼고 다 똑같이 했습니다. 메인 함수 마지막 for문에서 break가 있는 조건문의 내용만 다릅니다. 하나는 출발지와 목적지의 그룹을 직접 비교했고, 나머지 하나는 merge함수로 그룹을 이어줄 때 마다 카운트를 해서 (마을수-1)이 될 때 break해줬습니다. 직접비교가 확실한건 알겠는데, merge함수로 그룹 이어줄 때 마다 카운트하는 방식이 왜 안되는지 반례가 있는건지 아니면 구현에서 실수가 있는지 궁금합니다.ㅠㅠ
alsidnf 4년 전
union-find를 사용했습니다. 코드 내용은 확실히 비교하려고 한부분 빼고 다 똑같이 했습니다. 메인 함수 마지막 for문에서 break가 있는 조건문의 내용만 다릅니다. 하나는 출발지와 목적지의 그룹을 직접 비교했고, 나머지 하나는 merge함수로 그룹을 이어줄 때 마다 카운트를 해서 (마을수-1)이 될 때 break해줬습니다. 직접비교가 확실한건 알겠는데, merge함수로 그룹 이어줄 때 마다 카운트하는 방식이 왜 안되는지 반례가 있는건지 아니면 구현에서 실수가 있는지 궁금합니다.ㅠㅠ