n=int(input())
arr=[]
for _ in range(n):
arr.append(int(input()))
arr.sort()
for i in range(n):
print(arr[i])
메모리 초과가 일어난 코드이다..
메모리 제한이 너무 작기때문에 sort를 사용할 수 없다.
게다가 반복문 안에서 input을 사용해도 메모리 초과로 문제를 통과할 수 없다.
import sys
n=int(input())
arr=[0]*10001
for _ in range(n):
arr[int(sys.stdin.readline())]+=1
for i in range(len(arr)):
if arr[i] != 0:
for j in range(arr[i]):
print(i)
이렇게 해도 메모리 초과
import sys
n=int(input())
arr=[0]*10001
for _ in range(n):
arr[int(sys.stdin.readline())]+=1
for i in range(10001):
if arr[i] != 0:
for j in range(arr[i]):
print(i)
이렇게 해도 메모리 초과
import sys
n=int(sys.stdin.readline())
arr=[0]*10001
for _ in range(n):
arr[int(sys.stdin.readline())]+=1
for i in range(10001):
if arr[i] != 0:
for j in range(arr[i]):
print(i)
이렇게 해도 메모리 초과
import sys
n=int(sys.stdin.readline())
arr=[0]*10001
for _ in range(n):
arr[int(sys.stdin.readline())]+=1
for i in range(10001):
if arr[i] != 0:
for j in range(arr[i]):
print(i)
이렇게 해도 메모리 초과
whatttttttttttttttttt??????
다른 사람 ㅋ코드랑 똑같은데 이건 왜 안 되는 거지
import sys
N = int(sys.stdin.readline())
arr = [0]*10000
for _ in range(N):
num = int(sys.stdin.readline())
arr[num-1] += 1 # arr[num]에 num이 들어온 개수 count
for i in range(10000):
# arr[i]에 숫자가 들어왔다면
if arr[i] != 0:
# arr[num]에 num이 들어온 개수 만큼 출력
for j in range(arr[i]):
print(i+1)
why.............................
그러다가..
언어를 pypy3말고 python3로 바꾸어 실행해보았는데
맞았다고 떴다..............................
내가 알기론 pypy3가 빠르다고 알고있었는데.. 아, 메모리 성능은 반대인건가..... 해서 찾아보니
pypy3는 가비지 컬렉터가 python3와 다른 구조기 때문에 python3보다 더 많은 메모리로 사용된다고.
'Back-end > 백준(python)' 카테고리의 다른 글
★[백준/python] 11650 좌표정렬하기: (1) | 2023.10.27 |
---|---|
[백준/python] 1427 소트인사이드: 자릿수대로 잘라서 리스트에 넣기 (0) | 2023.10.27 |
[백준/python] 2751 수정렬하기2: arr.sort() 및 정렬 알고리즘 시간 복잡도 (1) | 2023.10.27 |
★[백준/python] 2839 설탕배달: 브루트포스 (1) | 2023.10.27 |
[백준/python] 1436 영화감독숌: 브루트포스 (0) | 2023.10.27 |