코딩테스트[파이썬]/백준 (BOJ)

백준 - 10989 - 정렬 3

softmoca__ 2024. 2. 13. 17:03
목차

https://www.acmicpc.net/problem/10989

 

10989번: 수 정렬하기 3

첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다.

www.acmicpc.net

 

 

 

메모리 초과된 잘못된 코드

메모리 초과
import sys

n=int(input())
arr=[]
for _ in range(n):
    arr.append(int(sys.stdin.readline()))
arr.sort()

for x in arr:
    print(x)

append를 사용하면 메모리 재할당이 발생해 메모리소비가 크다.

그래서 체크리스트를 사용

 

 

 체크리스트

import sys

n=int(input())

ch=[0]*(10001)

for i in range(n):
    x=int(sys.stdin.readline())
    ch[x]+=1

for i in range(1,10001):

    if ch[i]!=0:
        for _ in range(ch[i]):
            print(i)