728x90
https://www.acmicpc.net/problem/10989
pypy3가 아닌 python3로 제출해야 메모리초과를 받지 않을 수 있다.
import sys
n = int(sys.stdin.readline())
num_list = [0] *10001 #1
for _ in range(n):
num_list[int(sys.stdin.readline())] += 1
for i in range(10001):
if num_list[i] != 0: #2
for j in range(num_list[i]): #3
print(i) #4
#1 : 입력값의 크기가 10000보다 작거나 같은 수라 했으니 [0]*10001로 해준다.(천만이 아니라 1만이다.)
#2 : 입력값이 한번이라도 들어간 인덱스라면
#3 : 입력값이 들어간 횟수만큼
#4 : 숫자 i를 출력
관련된 문제로 수 정렬하기 2(https://hgk5722.tistory.com/131)가 있다.
메모리 제한이 8MB인데 재귀함수 호출로 오류가 나는것 말고는 메모리초과는 처음본다.
단순하게 파이썬 기본 기능을 사용하면 메모리 초과가 나는것을 이렇게 메모리 절약을 하는 다른 방법을 고안하는건 처음 보는 유형이어서 새롭다.
728x90
'[Coding Test] > [백준]' 카테고리의 다른 글
[백준] 11651 파이썬(python) : 좌표 정렬하기 2 (0) | 2022.07.05 |
---|---|
[백준] 2750 파이썬(python) : 수 정렬하기 (0) | 2022.07.05 |
[백준] 2805 파이썬(python) : 나무 자르기 - (★) (0) | 2022.07.05 |
[백준] 2108 파이썬(python) : 통계학 - Counter함수 (0) | 2022.07.05 |
[백준] 1966 파이썬(python) : 프린터 큐 (0) | 2022.07.05 |