반응형
문제
https://www.acmicpc.net/problem/10989
코드
import sys
input = sys.stdin.readline
n = int(input())
num_list = [0]*10001
for _ in range(n):
num = int(input())
num_list[num] += 1
for i in range(10001):
if num_list[i] != 0:
for j in range(num_list[i]):
print(i)
설명
카운팅 정렬이라는 것을 이용하는 방법인데,
이 문제를 풀면서 처음 접했다.
우선 수를 입력받아준다.
이후 범위가 지정되어 있으므로 범위만큼의 0으로 이루어진 리스트를 만들어준다.
그다음, 숫자를 입력받을 건데,
각 수의 인덱스에 맞는 수를 1씩 증가시켜서 카운트를 해준다.
이후 0이 아닌 num_list에 대해서 출력을 해준다.
반응형
'개발 연습장 > 백준 문제풀이' 카테고리의 다른 글
[파이썬, Python] 백준 1427: 소트인사이드 (0) | 2023.01.05 |
---|---|
[파이썬, Python] 백준 2108: 통계학 (0) | 2023.01.04 |
[파이썬, Python] 백준 2751: 수 정렬하기 2 (0) | 2023.01.02 |
[파이썬, Python] 백준 25305: 커트라인 (2) | 2023.01.01 |
[파이썬, Python] 백준 2587: 대표값2 (0) | 2022.12.31 |