def solution(n, works):
import heapq
if n >= sum(works):
return 0
works = [-w for w in works]
heapq.heapify(works)
for _ in range(n):
i = heapq.heappop(works)
i += 1
heapq.heappush(works, i)
return sum([w ** 2 for w in works])
여러번의 반복동안 가장 큰 수에 연산을 수행해야 할 경우 heapq.heapify()를 다음과 같이 활용하여 문제를 해결할 수 있다.