Thief of Wealth

1. 문제

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

2. 입력

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

3. 출력

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

 

 

핵심 아이디어.

너무도 간단한 문제 뒤에 숨겨진 엄청난 제한조건이 있다.

메모리와 시간이다.

이것을 통과하기 위해서는 count sort를 쓰면된다.

왜냐하면 모든 요소들이 1~10000 까지의 연속된 숫자로 이루어져 있기 때문이다!

 

<python />
import sys input = sys.stdin.readline n = int(input()) cnt = [0 for i in range(10000+1)] for i in range(n): cnt[int(input())] += 1 for i in range(1, 10000+1): for j in range(cnt[i]): print(i)
한번 누르면 2시간동안 보이지 않아요 ㅎㅎ 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
원치 않을 경우 를 눌러주세요

'개발 > 알고리즘' 카테고리의 다른 글

[BOJ] 1026 보물  (0) 2020.11.13
[BOJ] 11650 좌표 정렬하기  (0) 2020.11.11
[BOJ] 18310 안테나  (0) 2020.11.08
[BOJ] 18405 경쟁적 전염  (0) 2020.11.07
[BOJ] 1699 제곱수의 합  (0) 2020.11.06