chlghksdyd24   1년 전

안녕하세요, 이 문제를 풀다가 궁금한 점이 생겨서 질문을 남깁니다.

해당 코드를 python3로 제출하면 맞았습니다가 뜨는데 pypy3로 제출을 하면 메모리 초과가 나오더군요.

물론 pypy3가 python3보다 자주 쓰이는 코드를 메모리에 저장한다고 해서, 시간이 더 빠르고 메모리가 더 크게 나오는 건 알지만,

이 부분을 제외해도 제가 짠 코드에 문제가 있어서 메모리 초과가 뜨는 거 같은데 그 이유를 모르겠습니다.

답변 주시면 정말 감사하겠습니다.

djm03178   1년 전

PyPy3에서 sys.setrecursionlimit은 해당하는 수만큼의 재귀를 수행할 수 있을 정도로 넉넉한 크기의 메모리를 미리 할당받아 놓는 역할을 합니다.

100만 번의 재귀를 위해서 필요하다고 예측하는 메모리가 아주 크기 때문에 메모리 초과가 됩니다.

이 문제에서 재귀는 10만 번 정도까지밖에 들어갈 일이 없으므로 이 크기도 그 정도로 설정해주시면 됩니다.

chlghksdyd24   1년 전

와.. 생각지도 못한 곳에 원인이 있었네요.. 가르쳐주셔서 정말 감사합니다. 좋은 하루 되세요!

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