Algorithm/Python

[백준 11279] 최대 힙

🥭맹2 2021. 4. 23. 00:08

1. 문제

www.acmicpc.net/problem/11279

 

11279번: 최대 힙

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

www.acmicpc.net

2. 접근 방법

heapq를 사용해서 접근해야하는데욧

heapq는 최소 힙이기 때문에

우선순위를 추가해줘서 만들어주면 됩니다.

우선순위는

heappush(lst, (-n, n))

과 같이

인풋 된 숫자 값을 음수로 바꿔주면 ~!

됩니다.

 

그리고 출력할 때는 원래의 값인 1번 인덱스 값(n)을 출력하면 됩니다요

3. 코드

python

import sys, heapq

N = int(input())
lst = []
for i in range(N):
    n = int(sys.stdin.readline())
    if n:
        heapq.heappush(lst, (-n, n))
    else:
        if lst:
            print(heapq.heappop(lst)[1])
        else:
            print(0)

4. 마치며

마치며~!

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

[백준 1655] 가운데를 말해요  (0) 2021.04.23
[백준 11286] 절댓값 힙  (0) 2021.04.23
[백준 1927] 최소 힙  (0) 2021.04.22
[백준 7568] 덩치  (0) 2021.04.22
[백준 1181] 단어 정렬  (0) 2021.04.22