728x90
https://school.programmers.co.kr/learn/courses/30/lessons/12927
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
분석
- 남은 피로도를 최소화 하기 위해서 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