728x90
https://school.programmers.co.kr/learn/courses/30/lessons/12927
분석
- 남은 피로도를 최소화 하기 위해서 works 배열 내 모든 원소들의 제곱값의 합을 최소로 만듦
- 최대힙 사용
풀이
from heapq import heapify, heappush, heappop
def solution(n, works):
answer = 0
if sum(works) <= n:
return 0
works = [-w for w in works]
heapify(works) # 최대힙
while n > 0:
maxval = heappop(works)
heappush(works, maxval+1)
n -= 1
for w in works:
answer += w**2
return answer
728x90