728x90
회사원이 야근을 할때, 야근을 할 때 마다 피로도가 쌓이며,
야근 피로도는 야근을 시작한 시점에서 남은 일의 작업량을 제곱하여 더한 값이다
N시간 동안 야근 피로도를 최소화 하기 위해 일을 하는데
1시간에 작업량 1씩 처리가 가능하다
퇴근 까지 남은 N시간과 각 일에 대한 작업량 works에 대해 야근을 할 때 야근 피로도를 최소화한 값을 리턴해라
n시간을 효율적으로 사용하여 최소한의 피로도를 만들어 내는 문제로
가장 많은 작업량부터 n시간을 이용해 1씩 감소를 시킨다
잔업의 제곱이기에 수가 크면 그만큼 엄청난 피로도가 나오게 되기 떄문
우선순위큐를 이용해 자동정렬을 하여 큰수부터 뽑아서 값을 감소 시켜주며 n만큼 반복한다
마지막에는 남아 있는 작업량에 대해서 제곱을 하여 answer에 ++ 해주면 최소의 피로도가 나온다
728x90
'프로그래머스 C++' 카테고리의 다른 글
프로그래머스 단어 변환 C++ (0) | 2025.01.14 |
---|---|
프로그래머스 이중 우선 순위 큐 C++ (1) | 2025.01.13 |
프로그래머스 네트워크 C++ (0) | 2025.01.13 |
프로그래머스 정수 삼각형 C++ (0) | 2025.01.10 |
프로그래머스 큰 수 만들기 C++ (0) | 2025.01.10 |