[Programmers] λ 맡κ²
Updated:
λ 맡κ²
λ λ§΅κ² λ₯Ό ν΄λ¦νλ©΄ λ°λ‘ μ΄λνλ€.
λ¬Έμ κ° ν μΉ΄ν κ³ λ¦¬μ μμ΄μ νμΌλ‘ μ κ·Όν΄μΌ νλ κ±Έ μμμ§λ§..
μ§μ§κ° λλ €λ©΄ λ¬Έμ λ₯Ό λ³΄κ³ βνμ μ¨μΌ κΈλ°© νκ² λ€ !β λΌλ μκ°μ΄ λ€μ΄μΌ νλ€.
μ²μμ μ΅μ ν λμ μ°μ μμνλ₯Ό μ¨λ΄€λλ° μ νλ λ¬Έμ λ λ€ λ§λ λ°λ©΄ ν¨μ¨μ±μμ μ λΆ νλ Έλ€.
λΉμ°ν μ΄μΌκΈ°κ² μ§λ§ μ΅μ νμ λ£¨νΈ κ°μ λ½μμ€λ©΄ λμ§λ§ μ°μ μμ νλ μ μΌ μμ κ°μ μ°ΎμμΌ νκΈ° λλ¬Έμ΄λ€ !
import heapq
def solution(scoville, k):
answer = 0
min_heap = list()
for val in scoville:
heapq.heappush(min_heap, val)
while True:
try:
num1 = heapq.heappop(min_heap)
num2 = heapq.heappop(min_heap)
num3 = num1 + (num2 * 2)
heapq.heappush(min_heap, num3)
answer += 1
except IndexError:
answer = -1
break
if min_heap[0] >= k:
break
return answer
μ½λ κ·Έλλ‘ μ μ€λͺ ν΄λ³΄λ©΄ scoville μ ν΅ν΄ min_heap μ λ§λ λ€
μμ΄μ λ§λ μ€μ½λΉ κ° μ€ μ΅μκ°μ΄ K λ₯Ό λμΌλ©΄ μ’ λ£νλ€.
νμ§λ§ λκΉμ§ μμμμλ λΆκ΅¬νκ³ μ΅μκ°μ΄ K λ₯Ό λμ§ λͺ»νλ©΄ -1μ λ°ν ν΄μΌ νλ€.
μ΄ κ²½μ°λ λ§μ§λ§μ num2 λ₯Ό pop νλ κ³Όμ μμ IndexError κ° λ°μ ν΄ try, except λ‘ μ²λ¦¬ν΄μ£Όμλ€.
Leave a comment