[プログラマー]残業指数JAVA
6091 ワード
残業指数
会社員のデミはたまに残業しますが、残業すると残業疲労度が溜まります.残業疲労度は、残業開始時の残量に1つの数値を乗じたものです.デミはN時間以内に残業疲労度を最小限に抑える.デミが1時間以内に1時間の仕事量を処理できると言った場合、退勤前の残りのN時間と各仕事の仕事量について、残業疲労度を最低値に下げる関数解を返してください.
作品の配列長は1より大きく、20000未満である. 作品の要素は50000以下の自然数である. nは100000以下の自然数です.
最大ヒップを使用して解決します.
-最高価格は で臀部に残存値がなく、
問題の説明
会社員のデミはたまに残業しますが、残業すると残業疲労度が溜まります.残業疲労度は、残業開始時の残量に1つの数値を乗じたものです.デミはN時間以内に残業疲労度を最小限に抑える.デミが1時間以内に1時間の仕事量を処理できると言った場合、退勤前の残りのN時間と各仕事の仕事量について、残業疲労度を最低値に下げる関数解を返してください.
せいげんじょうけん
I/O例(説明省略)
ソースコード
import java.util.Comparator;
import java.util.PriorityQueue;
class Solution {
public long solution(int n, int[] works) {
long answer = 0;
PriorityQueue<Integer> pq = new PriorityQueue<>(Comparator.reverseOrder());
for (int work : works) {
pq.add(work);
}
while (n > 0) {
int max = pq.poll();
pq.add(--max);
n--;
if(pq.peek() == 0 && n > 0) break;
}
for (Integer num : pq) {
answer += Math.pow(num, 2);
}
if(n != 0) answer = 0;
return answer;
}
}
Comment
-最高価格は
-1
で、n
減少した.n
が0
でない場合、答えは0
に設定されます.Reference
この問題について([プログラマー]残業指数JAVA), 我々は、より多くの情報をここで見つけました https://velog.io/@jinmin2216/프로그래머스-야근-지수-JAVAテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol