
import sys
input = sys.stdin.readline
n = int(input())
# 사용자의 입력값이 cnt의 인덱스값이 된다.
# 입력값의 범위가 1~ 10000이므로 cnt의 크기는 10001로 지정(배열은 인덱스 0부터 시작하기 때문에 +1)
cnt = [0] * 10001
for _ in range(n):
# 계수 정렬의 핵심: 사용자의 입력값을 받을 리스트를 따로 지정하지 않고 바로 cnt 하나로 해결 가능
num = int(input())
cnt[num] += 1
for i in range(len(cnt)):
if cnt[i] != 0:
for _ in range(cnt[i]):
print(i)
원래 아래와 같이 코드를 짰는데 메모리 부족 오류가 떠서 이를 해결하기 위해서는 sort()가 아니라 계수정렬을 써야했다.
import sys
input = sys.stdin.readline
n = int(input())
list = []
for i in range(n):
list.append(int(input()))
list.sort()
for i in range(n):
print(list[i])
계수정렬의 핵심