jh05013   3년 전

print가 아니라 sys.stdout.write를 쓰면 메모리를 훨씬 적게 쓴다는 점을 발견했습니다. 하지만 pypy print를 하면서 문제가 되었던 적이 이 문제밖에 없고, python에서는 두 방식의 차이가 없습니다.

다음 코드를 각 사이트에서 실행시켰을 때, sys.stdout.write를 사용한 코드와 print를 사용한 코드의 메모리 사용량은 이렇습니다. 각각 sys.stdou.write와 print입니다.

  • BOJ: 130,328 KB, 213,664 KB (차이 83,336 KB)
  • Codeforces: 30,032 KB, 30,416 KB (차이 384 KB)

print를 통과할 수 있게 하려면 230 MB 정도의 제한을 잡으면 될 것 같습니다. 19051533이 간신히 통과할 정도로 하고, 정렬 결과 전체를 담는 코드가 메모리 초과를 받으면 좋겠습니다.

Atcoder에서 약 50 MB의 차이가 발생하였으므로 이 차이는 BOJ의 문제로 볼 수 없고, 따라서 이 요청은 타당하지 않습니다.

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