동캄의 코딩도장

프로그래머스 level3 [야근 지수] 파이썬 본문

코테/프로그래머스

프로그래머스 level3 [야근 지수] 파이썬

동 캄 2022. 4. 11. 09:32

https://programmers.co.kr/learn/courses/30/lessons/12927?language=python3 

 

코딩테스트 연습 - 야근 지수

회사원 Demi는 가끔은 야근을 하는데요, 야근을 하면 야근 피로도가 쌓입니다. 야근 피로도는 야근을 시작한 시점에서 남은 일의 작업량을 제곱하여 더한 값입니다. Demi는 N시간 동안 야근 피로도

programmers.co.kr

# 프로그래머스 야근 지수
import heapq


def solution(n, works):
    answer = 0
    q = []
    s = sum(works)
    for work in works:
        heapq.heappush(q, -work)
    if n >= s:
        answer = 0
    else:
        for i in range(n):
            work = heapq.heappop(q)
            work += 1
            heapq.heappush(q, work)
        for work in q:
            answer += (work**2)
    return answer

max힙을 이용하여 간단히 구현하였다.