[백준 2075] N번째 큰 수

Junyoung Park·2022년 3월 8일
0

코딩테스트

목록 보기
217/631
post-thumbnail

1. 문제 설명

N번째 큰 수

2. 문제 분석

우선순위 큐를 통해 n번째 큰 수를 구한다. 메모리 초과를 하지 않으려면 힙 사이즈를 유지해야 한다.

3. 나의 풀이

import sys
import heapq

n = int(sys.stdin.readline().rstrip())
heap = []
for _ in range(n):
    for item in list(map(int, sys.stdin.readline().rstrip().split())):
        if len(heap) < n: heapq.heappush(heap, item)
        # 힙 크기 최대 범위를 n까지 유지한다.
        else:
            if heap[0] < item:
                # 힙이 가진 가장 작은 값이 들어오는 값보다 작을 때 최솟값을 버리고 item을 추가해야 한다.
                heapq.heappop(heap)
                heapq.heappush(heap, item)

print(heap[0])
# 힙 사이즈가 n이므로 heap[0]이 n번째 큰 수가 된다.
profile
JUST DO IT

0개의 댓글