๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
CodingTest

[Python]๋ฐฑ์ค€11286::์ ˆ๋Œ“๊ฐ’ ํž™ ๋ฌธ์ œํ’€์ด

by ๋„์บ๋ฆฌ๐Ÿฑ 2021. 5. 4.
๋ฐ˜์‘ํ˜•

Solution

๐Ÿ‘‰ minheap์„ ์‚ฌ์šฉ

๐Ÿ‘‰ x๊ฐ€ 0 ์ด ์•„๋‹ ๋•Œ heap ์—๋‹ค๊ฐ€ ํŠœํ”Œ(์ ˆ๋Œ€๊ฐ’, ์ง„์งœ๊ฐ’) ๋กœ ๊ฐ’์„ ๋„ฃ๋Š”๋‹ค. (์ž๋™์œผ๋กœ minheap ํ˜•ํƒœ๋กœ ๋œ๋‹ค.)

๐Ÿ‘‰ x๊ฐ€ 0 ์ผ๋•Œ ์ถœ๋ ฅ์„ ํ•ด์ค˜์•ผ ํ•˜๋Š”๋ฐ, ๋งŒ์•ฝ ๋“ค์–ด์žˆ๋Š” ๊ฐ’์ด ์—†๋‹ค๋ฉด 0์„ ์ถœ๋ ฅํ•ด์ฃผ๊ณ  ๊ทธ๊ฒŒ ์•„๋‹ ์‹œ์—๋Š” pop ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.(์ž๋™์œผ๋กœ ๊ฐ€์žฅ ์œ„์˜ ๋…ธ๋“œ์ธ min ๊ฐ’์ด ํŒ ๋œ๋‹ค.) - ์ด๋•Œ pop ์‹œํ‚ค๋ฉด์„œ ํ•ด๋‹น ํŠœํ”Œ ๊ฐ’์„ k ๋ณ€์ˆ˜์— ์ €์žฅํ•ด๋‘์—ˆ๋‹ค๊ฐ€ k์˜ ์ธ๋ฑ์Šค 1๋ฒˆ ๊ฐ’์„ ์ถœ๋ ฅํ•ด์ค€๋‹ค.(์ ˆ๋Œ€๊ฐ’ ์•„๋‹Œ ์ง„์งœ ๊ฐ’!)

 

TIP

๐Ÿ‘‰ import heapq

๐Ÿ‘‰ sys.stdin.readline

๐Ÿ‘‰ heapq.heappush(๋ฆฌ์ŠคํŠธ, ๊ฐ’)    / heapq.heapop(๋ฆฌ์ŠคํŠธ)

๐Ÿ‘‰ heapq ๋Š” ๋ฆฌ์ŠคํŠธ๋ฅผ ์„ ์–ธํ•˜๊ณ  ๊ทธ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ธ์ž๋กœ ๋„ฃ์–ด ์ฃผ๋Š” ์‹์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ์ ! 

 

 

์ •๋‹ต ํ’€์ด

# ์ ˆ๋Œ“๊ฐ’ ํž™

import heapq,sys

pq = []

n = int(sys.stdin.readline()) # 1<=  <=100000

for i in range(n):
    x = int(sys.stdin.readline()) # -2^31 ~ 2^31
   
    if(x == 0):
        # ๋ฐฐ์—ด์—์„œ ์ ˆ๋Œ“๊ฐ’ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’ ์ถœ๋ ฅ
        if(len(pq)==0):
            print(0)
        else:
            k = heapq.heappop(pq)
            print(k[1])
    else:
        # x๋ผ๋Š” ๊ฐ’ ๋„ฃ๊ธฐ
        heapq.heappush(pq,(abs(x),x))

 


 

๐Ÿ‘‡ํŒŒ์ด์ฌ์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ’€ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ ๊ตฌํ˜„ ๋ฐฉ๋ฒ• ๋ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค.

2021.05.04 - [Algorithm/Python] - [Python] ๋ฌธ์ œ ํ’€ ๋•Œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ ํ™œ์šฉ๋ฒ•์„ ์•Œ์•„๋ณด์ž!

 

[Python] ๋ฌธ์ œ ํ’€ ๋•Œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ ํ™œ์šฉ๋ฒ•์„ ์•Œ์•„๋ณด์ž!

์•Œ๊ณ ๋ฆฌ์ฆ˜์— ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋“ค 1๏ธโƒฃ ๋ฐฐ์—ด ์‚ฝ์ž…/์‚ญ์ œ: O(N) ํƒ์ƒ‰: O(1) ๐Ÿ‘‰ ํŒŒ์ด์ฌ์—์„œ๋Š” ๋‹จ์ˆœํžˆ List๋กœ ๊ตฌํ˜„ํ•œ๋‹ค. ๐Ÿ‘‰ ํƒ์ƒ‰ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๊ธฐ ์ข‹์€ ์ž๋ฃŒ๊ตฌ์กฐ(์‚ฝ์ž…์ด๋‚˜ ์‚ญ์ œ๋Š” ํ•œ์ž๋ฆฌ์”ฉ ๋’ค๋กœ ์˜ฎ

carrido-hobbies-well-being.tistory.com

 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€