DonHurry

[Python] λ°±μ€€ 11279번 - μ΅œλŒ€ νž™ λ³Έλ¬Έ

Problem Solving

[Python] λ°±μ€€ 11279번 - μ΅œλŒ€ νž™

_도녁 2022. 11. 19. 23:31

πŸ“– λ¬Έμ œ

 

11279번: μ΅œλŒ€ νž™

첫째 쀄에 μ—°μ‚°μ˜ 개수 N(1 ≤ N ≤ 100,000)이 μ£Όμ–΄μ§„λ‹€. λ‹€μŒ N개의 μ€„μ—λŠ” 연산에 λŒ€ν•œ 정보λ₯Ό λ‚˜νƒ€λ‚΄λŠ” μ •μˆ˜ xκ°€ μ£Όμ–΄μ§„λ‹€. λ§Œμ•½ xκ°€ μžμ—°μˆ˜λΌλ©΄ 배열에 xλΌλŠ” 값을 λ„£λŠ”(μΆ”κ°€ν•˜λŠ”) 연산이고, xκ°€ 0

www.acmicpc.net

 

πŸ”Ž ν’€μ΄

μš°μ„ μˆœμœ„ 큐λ₯Ό ν™œμš©ν•˜λŠ” κ°„λ‹¨ν•œ λ¬Έμ œμž…λ‹ˆλ‹€. 파이썬 λͺ¨λ“ˆ heapqλ₯Ό μ΄μš©ν•˜μ—¬ ν’€μ΄ν•©λ‹ˆλ‹€. νŒŒμ΄μ¬μ€ μ΅œμ†Œ νž™λ§Œμ„ μ§€μ›ν•˜κΈ° λ•Œλ¬Έμ—, μ΅œλŒ€ νž™ 문제λ₯Ό ν’€κΈ° μœ„ν•΄μ„œλŠ” μž‘μ€ 아이디어 ν•˜λ‚˜κ°€ ν•„μš”ν•©λ‹ˆλ‹€. νž™μ— μ €μž₯ν•  λ•Œ, μž…λ ₯κ°’μ˜ λΆ€ν˜Έλ₯Ό λ°”κΎΈμ–΄ λ„£μ–΄μ£ΌλŠ” λ°©μ‹μœΌλ‘œ μ΅œλŒ€ νž™ 문제λ₯Ό ν•΄κ²°ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 

πŸ’» μ½”λ“œ

import sys
import heapq
input = sys.stdin.readline

N = int(input())
hq = []
for _ in range(N):
    num = int(input())
    if num == 0:
    	# λΉ„μ–΄μžˆλŠ” 경우 0 좜λ ₯
        print(-(heapq.heappop(hq)) if hq else 0)
    else:
        heapq.heappush(hq, -num)