p_ce1052   3년 전

사용되지 않은 모든 수를 k로 나눈 나머지로 관리하고 곽철용의 점수를 score라고 하면

어떤 수 x와 (x + score+1 이상의 수) 를 매칭시키고 삭제하는 작업을 반복하여 개수를 구했습니다

마지막에 min(쌍의 개수 , 참여한 사람 수 -1)을 출력하여 주었습니다.

37% 쯤에서 틀리는데 어디가 논리적으로 잘못되었는지 모르겠습니다

p_ce1052   3년 전

30번째 줄을 score+cur로 바꿔도 바로 틀리네요

slah007   3년 전

1. 위의 30번째줄에 score - cur은 말도 안됩니다. score == K-1인 경우 답이 0이어야 하는데 0이 안나옵니다.

2. score+cur로 바꾸면, 가능한 가장 작은 수를 찾는 것인데 이 역시 최적이 아닙니다.

예를 들어 score = 1이고 숫자가 1 2 3 4 5 6 이렇게 남아있다면

위의 알고리즘은 (1, 3), (2, 4) 매칭해서 총 2개지만

실제로는 (1, 4), (2, 5), (3, 6) 3개가 매칭 가능합니다.

10 10 40
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 40 39
19 20

ans: 9

result: 8

slah007   3년 전

사실 저도 계속 틀려서 정해가 뭔지는 모르겠습니다

p_ce1052   3년 전

감사합니다 일단 위의 알고리즘이 틀린 이유는 이해가 됬습니다. 정해는 계속 고민해봐야겠네요

p_ce1052   3년 전

주신 반례에서 영감을 받아 풀었습니다! 감사합니다

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