DevYoon

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋” ๋งต๊ฒŒ (Python) ๋ณธ๋ฌธ

PS/Programmers

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋” ๋งต๊ฒŒ (Python)

gimewn 2022. 3. 31. 23:57

link ๐Ÿ”— https://programmers.co.kr/learn/courses/30/lessons/42626

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๋” ๋งต๊ฒŒ

๋งค์šด ๊ฒƒ์„ ์ข‹์•„ํ•˜๋Š” Leo๋Š” ๋ชจ๋“  ์Œ์‹์˜ ์Šค์ฝ”๋นŒ ์ง€์ˆ˜๋ฅผ K ์ด์ƒ์œผ๋กœ ๋งŒ๋“ค๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์Œ์‹์˜ ์Šค์ฝ”๋นŒ ์ง€์ˆ˜๋ฅผ K ์ด์ƒ์œผ๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด Leo๋Š” ์Šค์ฝ”๋นŒ ์ง€์ˆ˜๊ฐ€ ๊ฐ€์žฅ ๋‚ฎ์€ ๋‘ ๊ฐœ์˜ ์Œ์‹์„ ์•„๋ž˜์™€ ๊ฐ™

programmers.co.kr

 

ํž™ ๋ฐฐ์šฐ๊ณ  ํ˜ธ๊ธฐ๋กญ๊ฒŒ ํ’€๊ธฐ์— ๋„์ „ํ–ˆ์œผ๋‚˜ ์ •ํ™•์„ฑ ํ…Œ์ŠคํŠธ๋Š” ๋‹ค ๋งž์•˜๋Š”๋ฐ ํšจ์œจ์„ฑ์€ ๋‹ค ํ‹€๋ ธ๋‹ค๐Ÿฅฒ

ํšจ์œจ์„ฑ ๊ทธ๊ฒŒ ๋ญ”๋ฐ...!! ํ‘ ใ… ใ…  ์ผ๋‹จ ์ •ํ™•์„ฑ ๋‹ค ๋งž์€ ์ฝ”๋“œ... ์ข€ ๋” ๊ณต๋ถ€ํ•ด์„œ ํšจ์œจ์„ฑ๋„ ๋‹ค ํ†ต๊ณผํ•˜๊ฒ ์–ด...๐Ÿฅฒ

 

import heapq

def solution(scoville, K):
    answer = 0
    heapq.heapify(scoville)
    while True:
        # ๋ชจ๋“  ์Œ์‹์˜ ์Šค์ฝ”๋นŒ ์ง€์ˆ˜๊ฐ€ K ์ด์ƒ์ธ์ง€ ํ™•์ธ
        food = 0
        for i in range(len(scoville)):
            if scoville[i] >= K:
                food += 1
        if food == len(scoville): # ์Šค์ฝ”๋นŒ ์ง€์ˆ˜ K ์ด์ƒ์ธ ์Œ์‹ ๊ฐœ์ˆ˜์™€ ์Šค์ฝ”๋นŒ์˜ ๊ฐœ์ˆ˜๊ฐ€ ๋™์ผํ•˜๋ฉด
            break # ๋ฐ˜๋ณต๋ฌธ ์ข…๋ฃŒ

        if len(scoville) <= 1: # ์Œ์‹ ๊ฐœ์ˆ˜๊ฐ€ 1๊ณผ ๊ฐ™๊ฑฐ๋‚˜ ์ž‘์•„์ง€๋ฉด ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฒƒ์ด๋ฏ€๋กœ
            return -1 # -1 ๋ฆฌํ„ด

        temp1 = heapq.heappop(scoville) # ์Šค์ฝ”๋นŒ ์ง€์ˆ˜ ์ œ์ผ ์ž‘์€ ์Œ์‹
        temp2 = heapq.heappop(scoville) # ๋‘ ๋ฒˆ์งธ๋กœ ์ž‘์€ ์Œ์‹
        heapq.heappush(scoville, temp1+(temp2*2)) # ์„ž์€ ์ƒˆ๋กœ์šด ์Œ์‹ push
        answer += 1 # answer 1 ์ฆ๊ฐ€
    return answer