본문 바로가기
백준 알고리즘

파이썬) 백준 알고리즘 | 2075번 : N번째 큰 수

by 코딩새내기_ 2022. 2. 24.

https://www.acmicpc.net/problem/2075

 

2075번: N번째 큰 수

첫째 줄에 N(1 ≤ N ≤ 1,500)이 주어진다. 다음 N개의 줄에는 각 줄마다 N개의 수가 주어진다. 표에 적힌 수는 -10억보다 크거나 같고, 10억보다 작거나 같은 정수이다.

www.acmicpc.net

백준 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])

댓글