코딩테스트 대비/BOJ

[Baekjoon/Python] 10989번: 수 정렬하기3 - 효과는 굉장했다!

bluetag_boy 2021. 10. 26. 03:10
반응형
 

10989번: 수 정렬하기 3

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

www.acmicpc.net

알고리즘 분류

  • 정렬

 

SOLUTION

import sys

N = int(sys.stdin.readline())
tmp = [0]*10001 # 조건: 수는 10000보다 작거나 같은 자연수, 10001개를 만드는이유? list의 인덱스는 0번 부터 시작하므로

for _ in range(N):
    tmp[int(sys.stdin.readline())] += 1 # 입력받은 수의 빈도 수를 1회 증가시킨다

for i in range(10001):
    if tmp[i] != 0:
        for j in range(tmp[i]): # 수의 인덱스 값 만큼 출력 ex) 예제처럼 1은 2번 입력되었으므로 tmp[1] = 2 이므로 2번출력
           print(i)