bupjae   6년 전

golang에서는 map을 만들 때 미리 예상되는 크기를 지정할 수도 있고, 아니면 그냥 디폴트로 정해진 크기를 그대로 쓸 수 있습니다.

하지만 어느쪽이든 map의 크기가 더 커질 경우 별 다른 조치를 하지 않아도 자동으로 크기를 늘려줍니다.

디폴트 크기를 쓴 코드 7888430번은 RTE를 받았고, 미리 크기를 정해준 7888476번은 AC를 받았습니다.

몇 번 더 제출을 해 본 결과 크기를 10000으로 잡으면 AC, 1000으로 잡으면 RTE가 나왔습니다.

(물론 이 문제에서 주어질 수 있는 최대 입력 데이터 "1000000000000 1000001000000" 의 경우 r의 최종 크기는 10000 따위는 훨씬 넘어갑니다)


가장 의심스러운 상황은 map을 확장이전 하면서 예전 땅(?)을 반납하지 않고 계속 들고 있다가 메모리 제한에 걸렸을 가능성인데

만약 그렇다면 1) 채점 결과는 RTE가 아니라 메모리 초과가 나와야 하고, 2) 그럼에도 불구하고 128MB + 512MB 를 초과했을 거라고는 생각하기 매우 힘듭니다.

1줄 요약: 7888430번이 RTE를 받은 원인이 궁금합니다.

startlink   6년 전

golang을 제가 할 줄 모르다보니 채점 프로그램에서 말씀하신 경우에 런타임 에러를 내는 버그가 있었습니다.

수정했으며, 다음 채점 프로그램 업데이트부터 적용될 예정입니다.

bupjae   6년 전

이 글을 본 후 3946번 문제 랜덤 걷기 문제에서 예전에 RTE를 받았던 코드(7808211번)를 다시 제출해 보니 (7900859번) AC를 받았습니다.

확인 및 업데이트 감사합니다.

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