본문 바로가기
프로그래머스 C++

프로그래머스 야근 지수 C++

by Srff5123 2025. 1. 13.
728x90

 

회사원이 야근을 할때, 야근을 할 때 마다 피로도가 쌓이며,

야근 피로도는 야근을 시작한 시점에서 남은 일의 작업량을 제곱하여 더한 값이다

N시간 동안 야근 피로도를 최소화 하기 위해 일을 하는데

1시간에 작업량 1씩 처리가 가능하다

퇴근 까지 남은 N시간과 각 일에 대한 작업량 works에 대해 야근을 할 때 야근 피로도를 최소화한 값을 리턴해라

 

n시간을 효율적으로 사용하여 최소한의 피로도를 만들어 내는 문제로

 

가장 많은 작업량부터 n시간을 이용해 1씩 감소를 시킨다

잔업의 제곱이기에 수가 크면 그만큼 엄청난 피로도가 나오게 되기 떄문

 

우선순위큐를 이용해 자동정렬을 하여 큰수부터 뽑아서 값을 감소 시켜주며 n만큼 반복한다

 

마지막에는 남아 있는 작업량에 대해서 제곱을 하여 answer에 ++ 해주면 최소의 피로도가 나온다 

728x90