[백준-2075] N번째 큰 수

이말감·2022년 6월 28일
0

백준

목록 보기
48/49

문제

링크

풀이

import sys
import heapq

input = sys.stdin.readline

n = int(input())
max_arr = []

for _ in range(n) :
    arr = list(map(int, input().split()))
    for a in arr :
        if len(max_arr) < n :
            heapq.heappush(max_arr, a)
            continue
        if max_arr[0] < a :
            heapq.heappop(max_arr)
            heapq.heappush(max_arr, a)

print(max_arr[0])

N번째 큰 수를 구하라고 했으므로, 큰 수부터 N개만 들어가는 배열인 max_arr를 만들었다.
그리고 주어진 입력값을 한 줄씩 받고 값을 하나씩 확인했다.
max_arr가 비어있거나 n개보다 작은 경우에는 push를 하고,
n개일 경우 가장 최소값과 현재 값을 비교해서 현재 값인 a가 크면 pop을 하고 새로 집어 넣었다.
모든 수를 확인한 후, max_arr의 최소값을 출력하면 되므로 max_arr[0]을 출력하면 된다.

profile
전 척척학사지만 말하는 감자에요

0개의 댓글