백준 2075번: N번째 큰 수 [Python]

실버 III 실버 III

문제

N번째 큰 수

풀이

메모리 제한이 작아 정수를 모두 저장하려고 하면 메모리 초과를 받습니다.

위에서부터 훑으며 가장 큰 수 N개만 관리하면 됩니다.

코드

아래 코드에서는 힙을 사용했으나 매번 정렬하는 방식으로 구현해도 상관 없습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import heapq


def main():
    N = int(input())

    heap = []
    for _ in range(N):
        for num in map(int, input().split()):
            heapq.heappush(heap, num)

        while len(heap) > N:
            heapq.heappop(heap)

    print(heap[0])


main()

백준 2075번: N번째 큰 수 [Python]