본문 바로가기

코딩/백준

[백준][Bronze I] 수 정렬하기 3 - 10989번 파이썬 문제풀이

728x90
반응형

성능 요약

메모리: 31120 KB, 시간: 8240 ms

분류

정렬

 

문제 설명

N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.

입력

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

출력

첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.

 

예제 입력 1 복사

10
5
2
3
1
4
2
3
5
1
7

예제 출력 1 복사

1
1
2
2
3
3
4
5
5
7

 

 

<풀이>

#import sys
#input = sys.stdin.readline
#N = int(input().strip())
#list = []
#for i in range(N):
#    list.append(int(input()))
    
    
#sort_list = sorted(list)

#for i in sort_list:
#    print(i)

 
#입력크기가 너무 커서 sort 대신 계수정렬을 활용해야함
import sys

input = sys.stdin.readline
N = int(input().strip())

# 1부터 10000까지의 숫자 빈도 수를 저장할 리스트 생성
count = [0] * 10001

# 입력된 숫자에 해당하는 인덱스의 값을 1 증가시킴
for _ in range(N):
    num = int(input().strip())
    count[num] += 1

# 각 숫자를 빈도만큼 출력
for i in range(10001):
    if count[i] > 0:
        for _ in range(count[i]):
            print(i)
반응형