psudo code
1. 예외를 찾는다
2. 배상해줘야 한다는 조건 하에, 작업량이 가장 많이 남은 것부터 하나씩 빼서 차감한후 다시 넣는다.
3. no가 0이 되면 종료
4. 마지막에 남은 작업량을 제곱해 더한 값이 배상비용이다.
import heapq
def solution(no, works):
if no >= sum(works):
return 0
# works = [-work for work in works]
# heapq.heapify(works)
remain_works = []
for work in works:
heapq.heappush(remain_works, -work)
while no:
work = -(heapq.heappop(remain_works)) - 1
heapq.heappush(remain_works, -work)
no -= 1
return sum(work**2 for work in remain_works)