Skip to content
CatBus
Go back

[BOJ] 수 정렬하기 3 - 10989 (B1)

시간 제한메모리 제한
2 초512 MB

문제

N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.

입력

첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다.

출력

첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.

풀이

중복된 수를 여러번 정렬하는 것을 피하기 위해 딕셔너리에 숫자 : 개수 형태로 저장한 뒤에 key를 정렬하여 수의 개수만큼 그 수(key)를 출력해준다.

코드

import sys
from collections import defaultdict
input = sys.stdin.readline
print = sys.stdout.write

n = int(input())
nums = []
d = defaultdict(int)

for _ in range(n):
    d[int(input())] += 1

for num in sorted(d):
    for _ in range(d[num]):
        print(f'{str(num)}\n')

Share this post:

비슷한 글

10989이 글—

본문을 Xenova/multilingual-e5-small 로 임베딩하고, 그 벡터를 PCA 로 32축에 눌러 왼쪽 막대로 그렸습니다. 비슷한 글은 지문도 닮습니다 — 위아래를 견줘 보세요. 계산은 빌드 때 끝나고 벡터는 브라우저로 오지 않습니다.

Previous Post
[BOJ] 대칭 차집합 - 1269 (S4)
Next Post
[BOJ] 소트 인사이드 - 1427 (S5)