크래프톤정글/TIL & WIL

백준 10989 수 정렬하기3 (도수정렬)

jamie-lee 2023. 1. 25. 11:30

백준 10989 수 정렬하기3 (도수정렬)

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

무엇?

N개의 수가 주어졌을 때, 이를 오름차순으로 정렬
첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)
둘째 줄부터 N개의 줄에는 수
수는 10,000보다 작거나 같은 자연수

왜?

정글 1주차 도수 정렬 복습

어떻게?

내 코드

  1. 수를 입력 받으면서 배열의 인덱스를 이용해 카운팅한다
  2. 카운팅 배열을 이중 for문으로 반복
    1. count 값이 존재하면 count 값만큼 인덱스 출력
import sys
input = sys.stdin.readline

N = int(input())
array = [0] * 10001

# 수 입력 + 배열에 count
for i in range(N):
    num = int(input())
    array[num] += 1

# 배열을 순회하며 count가 존재하면 인덱스 출력
for j in range(1, 10001):
    if (array[j] != 0):
        for _ in range(array[j]):
            print(j)