백준, N번째 큰 수 ,2075

2024. 8. 22. 00:30ETC/Algorithm

[유형]

자료유형

 

[문제링크]

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

 

[요약]

N*N의 수가 주어질 때, N번째 큰 수를 찾는 프로그램

 

[문제풀이]

heap의 길이를 n으로 유지하는게 포인트이다.

heap의 길이가 n보다 작으면, heappush

heap의 길이가 n보다 길고 새로운 자연수가 heap의 가장 작은 수보다 크다면 가장 작은 수를 heappop, 새로운 수를 heappush

import sys
def input():
    return sys.stdin.readline().rstrip()

import heapq

n = int(input())
heap =[]
init_num = []
for _ in range(n):
    init_num = list(map(int, input().split()))
    for i_n in init_num:
        if len(heap) < n:
            heapq.heappush(heap, i_n)
        else:
            if heap[0] < i_n:
                heapq.heappop(heap)
                heapq.heappush(heap, i_n)
print(heap[0])

'ETC > Algorithm' 카테고리의 다른 글

백준, 중앙값 구하기, 2696  (0) 2024.08.22
프로그래머스, 더 맵게  (0) 2024.08.22
백준, 최소 힙, 1927  (0) 2024.08.22
백준, 생태학, 4358  (0) 2024.08.20
백준, 나는야 포켓몬 마스터 이다솜,1620  (0) 2024.08.20