alsidnf   4년 전

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

hello70825   4년 전

굳이 모든 마을을 연결하지 않아도 됩니다.

만약 밑과 같은 입력이 들어오면 2번 코드의 경우에는 100이 출력되지만, 1번 코드의 경우에는 모든 마을을 연결시켜야하니 2가 출력되겠네요.

alsidnf   4년 전

아 다시 문제를 읽어보니 문제 이해를 잘 못했네요 ㅠㅠ.. 감사합니다

댓글을 작성하려면 로그인해야 합니다.