처음에는 단순한 문제일 줄 알고 그냥 하나씩 받아서 프린트하는 구조로 코드를 짰었다.
import sys
N = int(sys.stdin.readline())
X = []
for i in range(N):
X.append(int(sys.stdin.readline()))
X.sort()
for i in range(N):
print(X[i])
메모리 초과 ㅠㅠ
문제에서 수들이 10000보다 작거나 같은 자연수라고 했으니
10000개의 0을 담는 리스트를 만들고
인풋에 들어온 수 번째의 0을 +1씩 해준다 (이렇게 해야 여러 개 들어왔을 때 여러 개를 프린트할 수 있다)
그러고는 0이 아닌 애들만 프린트 해준다
import sys
N = int(sys.stdin.readline())
check = [0] * 10001
for i in range(N):
num = int(sys.stdin.readline())
check[num] = check[num] + 1
for i in range(10001):
if check[i] != 0:
for j in range(0, check[i]):
print(i)
'공부하자! > 알고리즘' 카테고리의 다른 글
백준 1009 파이썬 분산처리 (0) | 2021.03.11 |
---|---|
백준 2609 파이썬 최대공약수와 최소공배수 (0) | 2021.03.11 |
백준 10845 파이썬 큐 (0) | 2021.03.09 |
백준 2108 파이썬 통계학 (0) | 2021.03.08 |
백준 1018 파이썬 체스판 다시 칠하기 (0) | 2021.02.21 |