해피 코딩!

[백준] 10989번 수 정렬하기 3 본문

알고리즘

[백준] 10989번 수 정렬하기 3

지속가능한 성장을 2020. 12. 28. 23:23

이번 문제는 계수정렬을 사용하여 해결하는 알고리즘 문제이다.

계수정렬 (Counting sort)

  • 수의 범위가 제한적일 때 사용하는 알고리즘.
  • 배열의 인덱스를 특정한 데이터의 값으로 여기는 정렬 방법.
  • 배열의 크기는 데이터의 범위를 포함할 수 있도록 설정.
  • 데이터가 등장한 횟수를 센다.
lst = [0] * 10_001
import sys
for _ in range(int(sys.stdin.readline())):
    n = int(sys.stdin.readline())
    lst[n] +=1


for index, value in enumerate(lst):
    if value == 0:
        continue
    while value > 0:
        print(index)
        value-=1

입력의 양이 많다면 sys.stdin.readline() 을 잊지 않아야 한다.

'알고리즘' 카테고리의 다른 글

[백준] 11399 ATM  (0) 2020.12.31
[백준] 12865번 평범한 배낭  (0) 2020.12.30
[백준] 10814 나이순 정렬  (0) 2020.12.28
[백준] 2231 분해합  (0) 2020.12.27
[프로그래머스] level 2 구명보트  (0) 2020.12.24
Comments