문제만 봤을 때 되게 간단해 보이지만, 생각보다 까다로운 문제였다.
처음에는 list
로 for문을 돌리며 append()
해주고 sort()
함수로 정렬한 뒤, 리스트 원소를 반복문으로 출력하는 방식으로 접근했다. 메모리 제한이 8MB이기 때문에 당연히 메모리 초과가 났다.
반복문이 돌며 input()
이 들어오면 해당 인덱스에 1을 더해주고, 이후 해당 인덱스의 개수만큼 출력하는 트릭이 필요했다.
import sys
input = sys.stdin.readline
N = int(input())
li = [0] * 10001
for i in range(N):
li[int(input().strip())] += 1
for i in range(len(li)):
if li[i]:
for j in range(li[i]):
print(i)