티스토리 뷰

반응형

정렬을 이렇게 배열로 해서 정렬이라는 O(n) 이상의 행위를 줄이고, 테스트 케이스가 잘 돌아가게 할 수 있다.

수의 범위가 작다면 카운팅 정렬을 사용하여 더욱 빠르게 정렬할 수 있습니다.


문제

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())
a=[0]*10001
for i in range(n):
    test = int(input())
    a[test]+=1
for i in range(1,10001):
    if a[i]>0:
        for _ in range(a[i]):
            print(i)
반응형

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

백준 2003번 수들의 합 2 파이썬 :투 포인터 문제  (0) 2020.12.05
백준 2751번 수 정렬하기 2  (0) 2020.12.04
백준 1065번 한수  (0) 2020.12.03
wip: 백준 2580번 스도쿠  (0) 2020.12.03
백준 9663번 N-Queen 파이썬  (0) 2020.12.03
댓글