728x90
반응형
문제:
N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.
입력:
첫째 줄에 수의 개수 N(1<=N<=10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다.
출력:
첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.
풀이방법:
숫자가 10,000까지만 있다는 점에서 count를 하는 방식으로 정렬을 한다. 10,000 크기의 배열은 만든 뒤에 들어오는 숫자대로 해당하는 인덱스의 값을 늘려줬다. 이를 마친 뒤에 앞 인덱스부터 출력했다.
1
2
3
4
5
6
7
8
9
10
11
12
|
import sys
N = int(input())
numbers=[0]*10000
for _ in range(N):
n = int(sys.stdin.readline())
numbers[n-1]+=1
for i in range(10000):
while numbers[i]:
print(i+1)
numbers[i]-=1
|
cs |
문제링크:
https://www.acmicpc.net/problem/10989
728x90
반응형
'Algorithm > Python' 카테고리의 다른 글
[BOJ]17298. 오큰수 (0) | 2020.09.03 |
---|---|
[BOJ]16561. 3의 배수 (0) | 2020.09.01 |
[BOJ]11724. 연결 요소의 개수 (0) | 2020.08.25 |
[BOJ]1717. 집합의 표현 (0) | 2020.08.20 |
[BOJ]14502. 연구소 (0) | 2020.08.18 |