https://www.acmicpc.net/problem/10989
import sys
input = sys.stdin.readline
cnt = [0] * 10001
for _ in range(int(input())):
cnt[int(input())] += 1
for i in range(10001):
for _ in range(cnt[i]):
print(i)
.sort()
, .append()
등의 함수를 사용하면 메모리 초과가 발생한다.10000
이므로, 10001
크기의 리스트를 정의하고 0으로 초기화한다.10001
인 이유: 0
부터 10000
까지의 개수를 세야 하므로)1
을 더한다.cnt
의 각 인덱스에는 해당 값이 몇 번 입력되었는지 저장된다.0
부터 인덱스 10000
까지 돌면서 해당 인덱스의 값(cnt[i]
)만큼 인덱스(i
)를 출력한다. O(n)
의 시간 복잡도를 가진다. 메모리가 부족할 때는 계수 정렬을 애용하자.