kim0112hg   1년 전

게시판에 있는 모든 반례와 인터넷을 뒤져서 찾아봐도 틀린 반례를 아직 못 찾았습니다.

브루트 포스로 풀었는데 도대체 어디서 에러가 나는 걸까요? 도와주세요!!

choko100   1년 전

안녕하세요, 44 번 라인에서 pop 과 remove 를 for 문 안에서 돌리는 게 문제가 되지 않을까 싶습니다. party.remove() 로 아이템 하나를 없애는 순간, party 의 인덱스가 다시 정해질 텐데, 이전에 저장해두었던 rem 의 인덱스와 맞지 않아서 잘못된 아이템이 다음 번에 제거될 것 같습니다. 아래와 같은 반례를 만들어보았는데 확인 부탁드립니다.

입력)

8 7
1 1
2 5 6
2 4 5
2 3 4
2 7 8
2 1 2
2 7 8
2 1 2

정답)

5

위의 코드 출력)

4

kim0112hg   1년 전

나름 rem(pop)을 이용해서 뒤에서부터 제거한다고 생각하여 문제가 없을 줄 알았는데, 중복된 구성인 파티가 있는 경우에서 remove는 앞에서부터 제거하는 과정에서 인덱스가 바뀌는게 일어나는군요...!! 중복 구성 파티를 생각하지 못했었네요 감사합니다!

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