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
문제풀이
check_list를 [0] * 10001로 초기화 리스트 제작 후
입력 받은 숫자 값을 인덱스에 맞게 +1 추가
여러개 나오면 반복적으로 +1
check_list의 결과
[0, 2, 2, 2, 1, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
출력은 0이 아닌 경우에 인덱스에 들어간 값만큼 반복해서 숫자를 출력해준다.
import sys
n = int(input())
check_list = [0] * 10001 #[0]으로 초기화
for i in range(n) :
input_num = int(sys.stdin.readline())
check_list[input_num] = check_list[input_num] + 1 #입력값 개수만큼 인덱스에 추가
for i in range(10001) :
if check_list != 0 : #0제외
for j in range(check_list[i]) : #입력한 개수만큼 출력
print(i)
'코테풀이 > 쉬움 or 완전탐색' 카테고리의 다른 글
[백준 | 실버5] 12033번: 김인천씨의 식료품가게 (Small) (0) | 2022.03.14 |
---|---|
[백준 | 파이썬] 18870번: 좌표 압축(딕셔너리) (0) | 2022.03.08 |
[백준 | 파이썬 | 실버5] 10814번: 나이순 정렬 (0) | 2022.03.08 |
[백준 | 파이썬 | 실버5] 1181: 단어정렬 (0) | 2022.03.08 |
[백준 | 파이썬 | 실버3] 2108번: 통계학 (0) | 2022.03.08 |