๋ฌธ์
https://school.programmers.co.kr/learn/courses/30/lessons/12927
ํ์ด
# ํ๋ก๊ทธ๋๋จธ์ค 2๋จ๊ณ - ์ผ๊ทผ ์ง์
import heapq
def solution(n, works):
answer = 0
heap = []
# ์๊ฐ์์ ์์
์ ๋๋ผ ์ ์๋ ๊ฒฝ์ฐ
if sum(works) <= n:
return answer
for work in works:
# ์ต๋ ํ
heapq.heappush(heap, (-work, work))
while n > 0:
work = heapq.heappop(heap)[1] - 1
heapq.heappush(heap, (-work, work))
n -= 1
for h in heap:
if h[1] < 0:
continue
answer += h[1] ** 2
return answer
print(solution(1,[2,1,2]))
ํ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ด์ฉํ๋ฉด ๊ฐ๋จํ ํ ์ ์๋ ๋ฌธ์ ์ด๋ค.
ํ์ง๋ง ๊ตฌ๊ธ๋ง์ ํ๊ธฐ ์ ๊น์ง ํ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ ๊ฒ์ด๋ผ๊ณ ๋ ์๊ฐ์ง๋ ๋ชปํ๋ค.
์ต๋ ํ์ ๋ง๋ค๊ณ ์ต๋ ๊ฐ์ ํ๋์ฉ ๋ฝ์์ -1 ํด์ค ํ ๋ค์ ํ์ ๋ฃ์ด ์ค๋ค.