하루일문

[백준] 2751번 수 정렬하기 3 (파이썬) 본문

algorithm/baekjoon

[백준] 2751번 수 정렬하기 3 (파이썬)

support_u 2023. 2. 11. 02:23

초기 코드

nums = []
import heapq, sys
for _ in range(int(sys.stdin.readline())):
    nums.append(int(sys.stdin.readline())) 

heapq.heapify(nums)

for _ in range(len(nums)):
    print(heapq.heappop(nums))

오류

메모리 오류
처음 봐서 당황했다

수정 방법

메모리를 위해서

  • sys.stdin.readline() 필수
  • append 사용 금지

수정 코드

import sys
n = int(sys.stdin.readline())
# 최대 숫자까지 저장
arr = [0] * 10000

for _ in range(n):
    num = int(sys.stdin.readline())
    같은 수가 나올때마다 +1
    arr[num-1] += 1

for i in range(10000):
    # 인덱스안에 1이상 있다면(중복이 있었다면)
    if arr[i] != 0:
        # 인덱스에 1을 더한 수를 중복만큼 돌린다
        for j in range(arr[i]):
            print(i + 1)