tommy1003   3년 전

문제에 나와있는 반례는 기본이고

8 = 3 + 5

20 = 3 + 17

42 = 5 + 37

6 = 3 + 3

12 = 5 + 7

28 = 5 + 23

52 = 5 + 47

124 = 11 + 113

999998 = 19 + 999979

등등... 반례 모두 통과하는데 틀렸습니다. 받았습니다. ㅠㅠ 원인이 뭘까요

hibye1217   3년 전

입력의 마지막 줄에도 개행이 들어옵니다.

즉, 입력이
"8\n20\n42\n6\n12\n28\n52\n124\n999998\n0" 처럼 들어오는 것이 아니라
"8\n20\n42\n6\n12\n28\n52\n124\n999998\n0\n" 처럼 들어옵니다.

이 상태에서 split('\n')을 하면
['8', '20', '42', '6', '12', '28', '52', '124', '999998', '0', ''] 이 되고,

input.pop()을 시행해도 마지막 0이 남게 됩니다.
['8', '20', '42', '6', '12', '28', '52', '124', '999998', '0']

데이터 오류는 아닙니다.
원래 마지막 줄도 개행으로 끝나는 것이 정상적인 데이터입니다.

P.S. 에라토스테네스의 체 구현이 약간 잘못되었습니다.

현재 구현 상으로는 4 역시 소수로 판별하고 있습니다.

tommy1003   3년 전

와 감사합니다. ㅠㅠ 복 받으세요!

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