728x90

수 정렬하기 3은 수 정렬하기 1, 2와 다르게 메모리 제한이 작아 신경을 써야 한다.






입력되는 숫자 (= 배열에 들어가는 숫자)가 1 ~ 10,000,000이므로


천만 개의 int형을 배열로 다 저장하려면, C언어 기준으로 4byte * 10,000,000 = 40,000,000byte = 40MB로 메모리 초과가 발생한다.


파이썬 3의 경우


S계수정렬을 사용하여 파이썬3 정답으로 인정된 코드

위 코드와 같이 실행할 경우 백준에서 정답으로 인정된다. 


그러나 pypy3의 경우 메모리 초과가 다시 발생한다. (코딩 테스트를 준비하는 경우 pypy3로도 실행해봐야 함...)


여기서 메모리를 추가적으로 사용하는 print문을 sys.stdin.write로 변경할 경우 정답으로 인정된다.



계수정렬을 사용하여 pypy3 정답으로 인정된 코드


728x90