본문 바로가기
Coding Test/백준 BOJ

백준 10989 - 실버5

by 규나 2021. 8. 11.
SMALL

10989번: 수 정렬하기 3 (acmicpc.net)

 

10989번: 수 정렬하기 3

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

www.acmicpc.net

 

 

아이디어

1. 카운팅 정렬로 풀라고 해서 했는데 메모리 초과 문제가 발생한다.

2. 8MB 제한때문에 리스트를 두 개 이상으로 생성할 수 없다...

3. 최대 크기 k+1만큼의 카운트 리스트를 만들고, 그 값들을 순서대로 출력하면 된다.

import sys
sys.stdin = open("sample.txt", "r")

n = int(sys.stdin.readline())

k = 10000
count_list = [0]*(k+1)

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

for i in range(k+1):
    if count_list[i] > 0:
        for j in range(count_list[i]):
            print(i)

 

댓글