본문 바로가기
JAVA

pccp신입사원 교육

by Son 2023. 1. 18.
import java.util.*;

class Solution {
    public int solution(int[] ability, int number) {  // ability 사원들의 능력치 배열 number 교육횟수
        int answer = 0;  //초기화
        
        PriorityQueue<Integer> pq = new PriorityQueue<>();  //우선순위 q
        for(int a : ability) {  //능력치들을 전부 우선순위 배열에 넣음
            pq.add(a);
            answer += a;
        }
        for(int i = 0; i < number; i++) {  //교육횟수만큼 반복
            int sum = pq.remove() + pq.remove();  //능력치가 작은 = 가장작은수 2개를 꺼내서 더하고
            pq.add(sum);  //두번 다시 q에 넣어주기
            pq.add(sum);
            answer += sum;  //능력치 최소합
        }
        
        return answer;  
    }
}

1.우선순위 q를 사용할것

 

2.q에서 가장 작은 두 수를 꺼내고 더하고 난 후 q에 두번 넣어줄것

 

'JAVA' 카테고리의 다른 글

백준 11723 집합  (0) 2023.02.12
백준 2529번 부등호 java  (0) 2023.02.04
[PCCP 모의고사 #2] 실습용 로봇  (0) 2023.01.15
[PCCP 모의고사 #1] 운영체제  (0) 2023.01.12
프로그래머스 외톨이 알파벳  (1) 2022.12.21