N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 문제입니다. 단, 주어지는 숫자는 10,000 이하의 자연수입니다. 문제의 자세한 내용은 여기에서 확인하세요.
이 문제의 핵심은 주어진 숫자들을 메모리 제한 내에서 효율적으로 오름차순으로 정렬하는 것입니다.
계수 정렬(counting sort)을 사용하여 효율적인 정렬을 수행합니다. 주어진 숫자의 범위가 제한적이므로, 각 숫자가 몇 번 등장하는지 카운트하여 출력하는 방식을 사용합니다.
import sys
input = sys.stdin.readline
n = int(input())
count = [0] * 10001
for _ in range(n):
num = int(input())
count[num] += 1
for i in range(10001):
if count[i] > 0:
for _ in range(count[i]):
sys.stdout.write(str(i) + '\n')
위의 코드를 복사하고 Python 환경에서 실행하세요. sys.stdin.readline()
은 입력을 빠르게 받기 위한 함수입니다.