Programmers : ๋” ๋งต๊ฒŒ

์ตœ๋Œ€ 1 ๋ถ„ ์†Œ์š”

๐Ÿ”’ Programmers : ๋” ๋งต๊ฒŒ


ํž™์„ ์‚ฌ์šฉํ•  ์ค„ ์•ˆ๋‹ค๋ฉด ์‰ฝ๊ฒŒ ํ’€ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์˜€๋‹ค.

๋‘ ๊ฐœ์˜ ์Œ์‹์„ ์„ž์–ด ์Šค์ฝ”๋นŒ ์ง€์ˆ˜๋ฅผ ๋†’์ด๋Š” ์ž‘์—…๋งˆ๋‹ค ๋ชฉ๋ก์—์„œ ์Šค์ฝ”๋นŒ ์ง€์ˆ˜๊ฐ€ ์ œ์ผ ์ž‘์€ ์Œ์‹ ๋‘ ๊ฐœ๋ฅผ ๋นผ๋‚ด์„œ ์กฐํ•ฉํ•˜๋ฉด ๋˜๋ฏ€๋กœ

์ตœ์†Œํž™์„ ์ด์šฉํ•˜์—ฌ ํ’€์—ˆ๋‹ค.


๐Ÿ”‘ ์ฝ”๋“œ

import heapq
def solution(scoville, K):
    answer = 0
    heap = []
    for i in scoville:
        heapq.heappush(heap, i)

    for _ in range(len(heap)):
        a = heapq.heappop(heap)
        if a >= K:
            return answer
        if not heap:
            return -1
        b = heapq.heappop(heap)
        c = a + b * 2
        heapq.heappush(heap, c)
        answer += 1

์ตœ์†Œ ํž™์„ ์ด์šฉํ•˜๋ฏ€๋กœ heappop์„ ํ•œ ๊ฐ’์€ ์ œ์ผ ์ž‘์€ ๊ฐ’์ด๋ฏ€๋กœ ์ด ๊ฐ’์ด K๋ณด๋‹ค ํฌ๋‹ค๋ฉด ํ˜„์žฌ๊นŒ์ง€ ์ž‘์—…ํ–ˆ๋˜ ํšŸ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

heap์ด ๋น„์–ด์žˆ๋‹ค๋ฉด ๋”์ด์ƒ ์Šค์ฝ”๋นŒ ์ง€์ˆ˜๋ฅผ ์˜ฌ๋ฆด ์ˆ˜ ์žˆ๋Š” ์ˆ˜๋‹จ์ด ์—†์œผ๋ฏ€๋กœ -1์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

๊ทธ๊ฒŒ ์•„๋‹ˆ๋ผ๋ฉด heappopํ•˜์—ฌ 2๋ฒˆ์งธ๋กœ ์ž‘์€ ์Šค์ฝ”๋นŒ ์ง€์ˆ˜์˜ ์Œ์‹์„ ์„ž๋Š”๋‹ค. ์„ž์€ ๊ฒฐ๊ณผ๋ฅผ ๋‹ค์‹œ ๋ชฉ๋ก์— ์ถ”๊ฐ€ํ•œ๋‹ค.

๋ชจ๋“  ์Œ์‹์˜ ์Šค์ฝ”๋นŒ ์ง€์ˆ˜๊ฐ€ K๋ฅผ ๋„˜๊ฒŒ ํ•˜๋Š” ์ž‘์—…์˜ ์ตœ์†Œ ํšŸ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์„ž๋Š” ์ž‘์—…์„ ํ•  ๋•Œ๋งˆ๋‹ค ํšŸ์ˆ˜๋ฅผ ์นด์šดํŠธํ•œ๋‹ค.

์นดํ…Œ๊ณ ๋ฆฌ:

์—…๋ฐ์ดํŠธ:

๋Œ“๊ธ€๋‚จ๊ธฐ๊ธฐ