SMALL
10989번: 수 정렬하기 3 (acmicpc.net)
10989번: 수 정렬하기 3
첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다.
www.acmicpc.net
아이디어
1. 카운팅 정렬로 풀라고 해서 했는데 메모리 초과 문제가 발생한다.
2. 8MB 제한때문에 리스트를 두 개 이상으로 생성할 수 없다...
3. 최대 크기 k+1만큼의 카운트 리스트를 만들고, 그 값들을 순서대로 출력하면 된다.
import sys
sys.stdin = open("sample.txt", "r")
n = int(sys.stdin.readline())
k = 10000
count_list = [0]*(k+1)
for i in range(n):
elem = int(sys.stdin.readline())
count_list[elem] += 1
for i in range(k+1):
if count_list[i] > 0:
for j in range(count_list[i]):
print(i)
'Coding Test > 백준 BOJ' 카테고리의 다른 글
| 백준 21610. 마법사 상어와 비바라기 - 골드 5 (0) | 2021.10.15 |
|---|---|
| 백준 1629. 곱셈 - 실버 1 (0) | 2021.08.27 |
| 백준 11729. 하노이탑 - 실버 2 (0) | 2021.08.12 |
댓글