📊알고리즘, 문제풀이/📈문제풀이 (PS)

[알고리즘][Python] 백준 11279 최대 힙 문제 풀이

Written by Donghak Park

문제 출처 : www.acmicpc.net/problem/11279

 

11279번: 최대 힙

첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가

www.acmicpc.net


문제 해석 : 최대 힙을 구현하는 문제이다.

 

문제 풀이 : 파이썬에서 제공하는 heapq를 이용하면서 입력을 -1을 곱해서 출력 또한 -1을 곱해서 하면 최소힙을 이용해서 최대힙과 동일한 기능을 수행할 수 있다.

 

가능한 다른 풀이 : 직접 최대힙을 구현하여 풀이 할 수 있다.


풀이 코드

import heapq
import sys
input = sys.stdin.readline

N = int(input())
Q = []

for _ in range(N):
    x = int(input())

    if x == 0:
        if Q:
            print(-heapq.heappop(Q))
        else:
            print(0)
    else:
        heapq.heappush(Q, -x)

author : donghak park
contact : donghark03@naver.com

## 문제의 저작권은 백준 알고리즘 사이트에 있습니다. 혹시 문제가 되는 부분이 있으면 연락 바랍니다.