# N번째 큰 수
import sys
import heapq
input = sys.stdin.readline
N = int(input())
heap = []
for i in range(N):
temp = list(map(int, input().split()))
if i == 0:
for x in temp:
heapq.heappush(heap, x)
continue
for x in temp:
if heap[0] < x:
heapq.heappop(heap)
heapq.heappush(heap, x)
print(heap[0])
힙
1. 한 줄씩 입력을 받고 첫 줄은 heapq에 push
2. 둘째 줄 부터는
- heap[0]보다 큰 수만 push
- 이때, heap의 크기를 N만큼 유지해주기 위해서 pop
3. heap[0] 출력
문제에서 눈여겨봐야 할 것은 바로 메모리 제한이다.
메모리 제한이 12MB이다.
또한, 'N번째 큰 수'이기에 최소 힙을 이용해서 힙의 크기를 N만큼 유지해줄 필요가 있다.
'Algorithm > BOJ' 카테고리의 다른 글
[백준] 2665번 - 미로만들기 (파이썬) (0) | 2022.03.04 |
---|---|
[백준] 4179번 - 불! (파이썬) (0) | 2022.03.03 |
[백준] 10775번 - 공항 (파이썬) (0) | 2022.03.01 |
[백준] 17472번 - 다리 만들기 2 (파이썬) (0) | 2022.02.19 |
[백준] 1613번 - 역사 (파이썬) (0) | 2022.02.19 |