Coding Test/programmers

[프로그래머스] 야근지수 (힙)

Karla Ko 2023. 9. 7. 12:45
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