수를 효율적으로 정렬하는 방법을 강구해야하는 문제이다.
먼저 for문에서 input을 넣어서 사용하면 느리기 때문에 sys모듈의 readline을 이용해주었다.
그냥 sort를 써주면 메모리 초과가 발생하기 때문에 문제에서 주어진 숫자의 범위제한을 이용해준다.
10000이하의 수들만 입력받아 정렬해줘야 하므로,
적절한 크기의 배열을 만들어두고 입력받은 수를 index로 하여
배열에 1을 더해준다.
입력이 끝나면 배열을 검사하여 2중for문을 이용해 배열의 값이 0이 아닐 때만 출력해준다.
import sys
n = int(sys.stdin.readline())
a = [0]*(10001)
for i in range(n):
a[int(sys.stdin.readline())] += 1
for i in range(10001):
if a[i] != 0:
for j in range(a[i]):
print(i)
'백준' 카테고리의 다른 글
알고리즘 수업 - 깊이 우선 탐색 1 - 24479번 (0) | 2022.09.25 |
---|---|
약수 - 1037번 (0) | 2022.09.22 |
계단 오르기 - 2579번 (0) | 2022.09.20 |
A와 B - 12904번 (0) | 2022.09.19 |
스택 - 10828번 (0) | 2022.09.18 |
댓글