๐Ÿ—๏ธ Algorithm/๐ŸŸฉ ๋ฐฑ์ค€

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [Class3] 11286๋ฒˆ_์ ˆ๋Œ“๊ฐ’ ํž™

Dbswnstjd 2022. 11. 14. 21:36

๋ฌธ์ œ

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

 

11286๋ฒˆ: ์ ˆ๋Œ“๊ฐ’ ํž™

์ฒซ์งธ ์ค„์— ์—ฐ์‚ฐ์˜ ๊ฐœ์ˆ˜ N(1≤N≤100,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ N๊ฐœ์˜ ์ค„์—๋Š” ์—ฐ์‚ฐ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ •์ˆ˜ x๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋งŒ์•ฝ x๊ฐ€ 0์ด ์•„๋‹ˆ๋ผ๋ฉด ๋ฐฐ์—ด์— x๋ผ๋Š” ๊ฐ’์„ ๋„ฃ๋Š”(์ถ”๊ฐ€ํ•˜๋Š”) ์—ฐ์‚ฐ์ด๊ณ , x๊ฐ€ 0

www.acmicpc.net

ํ’€์ด

# ๋ฐฑ์ค€ 11286๋ฒˆ ๋ฌธ์ œ - ์ ˆ๋Œ“๊ฐ’ ํž™
import sys
import heapq
heap = []
n = int(sys.stdin.readline())
for i in range(n):
    num = int(sys.stdin.readline())
    if num != 0:
        heapq.heappush(heap, (abs(num), num))
    else:
        if not heap:
            print(0)
        else:
            print(heapq.heappop(heap)[1])

heapq ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์˜€๋‹ค. 

heap์— ํŠœํ”Œ ์ž๋ฃŒํ˜•์œผ๋กœ push๋ฅผ ํ•ด์ฃผ๊ณ  ํŠœํ”Œ์˜ ์ฒซ๋ฒˆ์งธ ์›์†Œ๋ฅผ ๋จผ์ € ๋น„๊ตํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ ˆ๋Œ“๊ฐ’์„ ์”Œ์›Œ์ฃผ์—ˆ๋‹ค. 

 

ํž™ ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ์šฐ์„ ์ˆœ์œ„ ํ์—์„œ๋„ ์‚ฌ์šฉ๋˜๊ณ  ๋งค์šฐ ์ค‘์š”ํ•˜๋‹ˆ ์ œ๋Œ€๋กœ ์•Œ์•„๋‘๋„๋ก ํ•˜์ž.