[programmers/py] 야근지수

승민·2024년 3월 15일

알고리즘

목록 보기
70/171

야근 지수

https://school.programmers.co.kr/learn/courses/30/lessons/12927

문제 설명

  • 야근 피로도는 야근을 시작한 시점에서 남은 일의 작업량을 제곱하여 더한 값입니다
  • 1시간 동안 작업량 1만큼을 처리할 수 있다고 할 때, 퇴근까지 남은 N 시간과 각 일에 대한 작업량 works에 대해 야근 피로도를 최소화한 값을 리턴하는 함수 solution을 완성해주세요.

문제 풀이

  • 최대 힙 문제
import heapq
def solution(n, works):
    
    if sum(works) <= n :
        return 0
    
    work = [-w for w in works]
    heapq.heapify(work)
    
    for _ in range(n):
        heapq.heappush(work, heapq.heappop(work) + 1)
    
    return sum([w**2 for w in work])

0개의 댓글