반응형
정렬을 이렇게 배열로 해서 정렬이라는 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 |