백준 2075 N번째 큰 수

꿈틀이·2023년 1월 30일
0

알고리즘 - 기초

목록 보기
16/21

from heapq import heappush, heappop
import sys
input = sys.stdin.readline

num = int(input())
heap = []

for i in range(num):
    nums = list(map(int,input().strip().split(" ")))
    for k in range(num):
        if(len(heap) >= num):
            if(heap[0]<nums[k]):
                heappop(heap)
                heappush(heap,int(nums[k]))
        else:
            heappush(heap,int(nums[k]))

print(heap[0])

처음 짠 코드는 아래와 같다


from heapq import heappush, heappop
import sys
input = sys.stdin.readline

num = int(input())
heap = []

for i in range(num):
    nums = input().strip().split(" ")
    for k in range(num):
        heappush(heap,-int(nums[k]))

for i in range(num):
    ans = heappop(heap)
    
print(-int(ans))


하지만 메모리 초과가 떴다 ㅠㅜㅠㅜㅠ
질문 게시판을 참고하여 해결하였다!

고치며 배운점은

heap[0]은 heap안에서의 값들 중 최소값을 지닌다

는 것이다.

필요 없는 정보는 그때 그때 삭제하며 메모리 공간 아끼기

입력 받은 형태를 유지하지 않아도 된다!

이 두가지 또한 배운 것 같다!!

profile
안녕하세용🤓

0개의 댓글