works | n | result |
---|---|---|
[4, 3, 3] | 4 | 12 |
[2, 1, 2] | 1 | 6 |
[1,1] | 3 | 0 |
: works를 내림차순 정렬시켜서 n만큼 각각 1씩 빼주고 야근지수를 구한다. -> 틀렸습니다.
[8,3,3], n=4일 때 [6,2,2]보다 [4,3,3]가 더 적음. 즉 최대힙을 사용해서 가장 큰 수를 뽑아 1씩 빼줘야한다.
import heapq
def solution(n, works):
if sum(works) <= n:
return 0
#최댓값을 반복적으로 찾아내어 1씩 감소시킴
works = [-x for x in works]
heapq.heapify(works)
for _ in range(n):
x = heapq.heappop(works)
heapq.heappush(works, x+1)
return sum([x**2 for x in works])