https://www.acmicpc.net/problem/2075
백준 2075 'N번째 큰 수' 문제입니다.
그냥 정렬해서 풀면 메모리 문제가 나기 때문에 우선순위큐를 이용해야 합니다.
문제는 N by N이고 N번째 큰 수 를 원하기 때문에 우선순위큐에는 N개의 원소가 들어가게 하였습니다.
그래서 매 줄마다 크기를 비교하여 가장 큰 N개의 원소만 가지고 있게 구현하였습니다.
import sys
import heapq
input = sys.stdin.readline
N = int(input())
heap = []
for i in range(N):
nums = list(map(int, input().split()))
if not heap:
for num in nums:
heapq.heappush(heap, num)
else:
for num in nums:
if heap[0] < num:
heapq.heappop(heap)
heapq.heappush(heap, num)
print(heap[0])
'백준 알고리즘' 카테고리의 다른 글
파이썬) 백준 알고리즘 | 1449번 : 수리공 항승 (0) | 2022.02.27 |
---|---|
파이썬) 백준 알고리즘 | 1874번 : 스택 수열 (0) | 2022.02.27 |
파이썬) 백준 알고리즘 | 1003번 : 피보나치 함수 (0) | 2022.02.18 |
파이썬) 백준 알고리즘 | 1021번 : 회전하는 큐 (0) | 2022.02.06 |
파이썬) 백준 알고리즘 | 11866번 : 요세푸스 문제 0 (0) | 2022.02.06 |
댓글