CS/알고리즘

백준 10989번 수 정렬 3 파이썬 풀이(메모리 관리)

happy_life 2022. 2. 28. 22:49

문제

N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.

입력

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

 


메모리 초과

# 수 정렬하기 3

from re import S


N = int(input())
sort = []
for i in range(N):
    sort.append(int(input()))
sort.sort()
for _ in sort:
    print(_)

 

정답 코드

# 수 정렬하기 3

from re import L
import sys

N = int(input())

check_list = [0]*10001

for i in range(N):
    input_num = int(sys.stdin.readline())

    check_list[input_num] = check_list[input_num] +1

print(check_list)
for i in range(10001):
    if check_list[i] != 0:
        for j in range(check_list[i]):
            print(i)

1.시간복잡도 O(n)으로 하였음

2. 100001로 제한하였음