메모리 초과 오류가 발생했다. 생각해보면 N이 10,000,000까지 가능하기 때문에 list의 길이가 너무 커져서 메모리 초과 오류가 발생한 것으로 생각된다.
# 메모리 초과 발생
import sys
input = sys.stdin.readline
n = int(input().rstrip())
lst = []
for _ in range(n):
num = int(input().rstrip())
lst.append(num)
lst.sort()
for i in lst:
print(i)
따라서 list의 길이를 어떻게 하면 줄일 수 있을까 고민했다. 둘째 줄부터 주어지는 수는 최대가 10,000이므로 이를 list의 길이로 활용하게 되면 메모리 초과 오류를 없앨 수 있겠다고 생각해 코드를 구현했다.
import sys
input = sys.stdin.readline
n = int(input().rstrip())
lst = [0] * 10001
for _ in range(n):
num = int(input().rstrip())
lst[num] += 1
for i in range(10001):
l = lst[i]
if l != 0:
for j in range(l):
print(i)
'백준' 카테고리의 다른 글
[백준] 18111번 파이썬 (마인크래프트) (0) | 2024.02.25 |
---|---|
[백준] 18110번 파이썬 (solved.ac) (0) | 2024.02.24 |
[백준] 4949번 파이썬 (균형잡힌 세상) (0) | 2024.02.23 |
[백준] 2231번 파이썬 (분해합) (0) | 2024.02.23 |
[백준] 1966번 파이썬 (프린터 큐) (0) | 2024.02.23 |