[Programmers] μΌκ·Ό μ§μ
Updated:
μΌκ·Ό μ§μ
μΌκ·Ό μ§μ λ₯Ό ν΄λ¦νλ©΄ λ°λ‘ μ΄λνλ€.
μΌκ·Ό μ§μλ μΌκ·Όμ ν λ λ¨μ μμ λμ μ κ³±μ ν©μ΄λ€.
λλ¬Έμ μΌκ·Όμ νκΈ° μ κΉμ§ μ΅λν μμ λμ΄ λ§μ μμ λ€μ μ€μ¬ λμΌλ©΄ λλ€.
μ¦, μκ°μ΄ κ° λ λ§λ€ λ°°μ΄μ μ΅λκ°μμ 1μ λΉΌμ£Όλ©΄ λλ€.
μμ μ ν λ λ§λ€ μ΅λκ°μ μ°ΎμμΌ νκΈ° λλ¬Έμ max ν¨μλ₯Ό μ΄μ©νλ©΄ μκ°μ΄κ³Όκ° λ°μνλ€.
μ΄λ΄ λ μ΅λνμ μ¬μ©νλ©΄ λλ€.
νμ§λ§ νμ΄μ¬μ μ΅μνλ§μ μ 곡νκΈ° λλ¬Έμ μλ κ°μ -1 μ κ³±ν΄ μ΅λνμ ꡬννλ€.
μ κ³±μ ν΄μ λνλΌλ μ΄μ κ° μ΅λνμ ꡬννλ©΄ -1 μ κ³±ν΄μΌ νλ ννΈλ₯Ό μ€ κ²μΈκ°..
import heapq
def solution(n, works):
result = 0
if sum(works) <= n:
return 0
for i in range(len(works)):
works[i] *= -1
heapq.heapify(works)
for i in range(n):
work = heapq.heappop(works) * -1
work -= 1
heapq.heappush(works, work * -1)
for work in works:
result += (work ** 2)
return result
Leave a comment