[Python][프로그래머스][Level3] 야근 지수

[Python][프로그래머스][Level3] 야근 지수

코드

import heapq
def solution(n, works):
    if sum(works)<=n:
        return 0
    works=[-i for i in works]
    heapq.heapify(works)
    
    for _ in range(n):
        ck=heapq.heappop(works)
        heapq.heappush(works,ck+1)
        
    return sum([i**2 for i in works])

힙을 사용한 문제다.

같은 값에 대해서 야근 지수가 최소로 만들기 위해서는

값들의 차이를 최소화해야 한다.

따라서 heap을 활용해 가장 큰 값을 1씩 줄이는 것을 n번 반복하면 된다.

Discussion and feedback