[BOJ] 2075 - N번째 큰수

suhyun·2022년 4월 12일
0

백준/프로그래머스

목록 보기
11/81

문제 링크

2075-N번째 큰수

문제 설명

N이 주어지고 NxN의 표에 들어갈 각각의 숫자도 주어진다.
전체 NxN개의 숫자 중 N번째 큰수를 출력한다.

문제 풀이

메모리 초과 때문에 좀 애먹었다.
heap을 이용하는 문제인거는 바로 알았는데 Max-heap을 이용해서 N번째 큰수를 출력하다보니 자꾸 메모리 초과 발생
그래서 Min-heap으로 해서 큐의 길이를 N만큼으로 유지하는 방법으로 해결

import sys
import heapq
input = sys.stdin.readline

n = int(input().strip())
hq = []

for _ in range(n):
    nums = list(map(int, input().split()))

    if not hq:
        for num in nums:
            heapq.heappush(hq, num)
    else:
        for num in nums:
            if hq[0] < num:
                heapq.heappush(hq, num)
                heapq.heappop(hq)
print(hq[0])
profile
꾸준히 하려고 노력하는 편 💻

0개의 댓글