https://www.acmicpc.net/problem/10989
# 백준 10989 수 정렬하기 3
import sys
n = int(input())
num=[]
for _ in range(n):
num.append(int(sys.stdin.readline()))
for i in sorted(num):
print(i)
# 메모리 초과 뜸
# append를 할 때마다 메모리 재할당이 발생한다고 함
이 전과 비슷하게 진행하면 메모리 초과 에러발생
append로 리스트에 요소를 추가 할 때마다 메모리 재할당이 일어난다고 합니다.
재귀에서 메모이제이션 활용해서 문제 푸는것과 비슷하게 진행 해봤습니다.
import sys
n = int(input())
a = [0] * 10001 # 1
for _ in range(n): # 2
# num = int(sys.stdin.readline())
num = int(input())
a[num] += 1 # 3
for i in range(len(a)): # 4
if a[i] != 0: # 5
for _ in range(a[i]): # 6
print(i) # 7
# 1 : 먼저 0으로 이루어지고 인덱스가 0 ~ 10000까지 있는 리스트 생성( n의 범위가 1에서 10000까지이기 때문)
# 2 : n번 반복해서 수 입력 받음
# 3 : 입력 받은 수를 a의 index로 하고 거기에 1을 더해줌
# 4 : a의 인덱스를 처음부터 훑어줌
# 5 : a의 요소가 0이 아닌 경우만 생각 ( 인덱스에 해당하는 값이 위에서 입력으로 들어왔다는 뜻)
# 6 : 해당 요소의 값 만큼 반복 ( 해당 인덱스의 값이 입력으로 들어온 횟수)
# 7 : 해당 인덱스 출력
- 위에 num = int(input()) 으로 진행하면 시간 초과뜨니까 num = int(sys.stdin.readline())으로 진행하면 됩니다.
'알고리즘 > 백준' 카테고리의 다른 글
[Python] 백준 파이썬 2108 통계학 (0) | 2022.09.13 |
---|---|
[Python] 백준 파이썬 25305 커트라인 (0) | 2022.09.12 |
[Python] 백준 파이썬 2751 수 정렬하기 2 (0) | 2022.09.10 |
[Python] 백준 파이썬 2750 수 정렬하기 (0) | 2022.09.09 |
[Python] 백준 파이썬 2869 달팽이는 올라가고 싶다 (0) | 2022.09.08 |