-
[프로그래머스] 야근 지수ALGORITHM/PROGRAMMERS 2021. 9. 6. 21:59
https://programmers.co.kr/learn/courses/30/lessons/12927?language=java
2021-09-06
123456789101112131415161718192021import java.util.*;class Solution {public long solution(int n, int[] works) {long answer = 0;PriorityQueue<Long> pq = new PriorityQueue<>(Comparator.reverseOrder());for(int i = 0; i < works.length; i++) pq.add((long) works[i]);while(!pq.isEmpty()) {long val = pq.poll();if(val - 1 > 0) pq.add(--val);n--;if(n == 0) break;}while(!pq.isEmpty()) {answer += Math.pow(pq.poll(), 2);}return answer;}}cs #문제풀이
가장 큰 값을 계속 쳐내주는게 좋다. 그래서 priorityqueue를 reverseorder로 해놓고 poll()한 값을 계속 n만큼 깎아줬다.
'ALGORITHM > PROGRAMMERS' 카테고리의 다른 글
[프로그래머스] 없는 숫자 더하기 (월간 코드 챌린지 시즌3) (0) 2021.09.13 [프로그래머스] 멀리 뛰기 (0) 2021.09.07 [프로그래머스] 여행경로 (0) 2021.09.06 [프로그래머스] 위클리 챌린지 6주차 (0) 2021.09.06 [프로그래머스] 하노이의 탑 (0) 2021.09.06