코딩테스트/프로그래머스

PCCP 모의고사 2회 - 신입사원 교육

feel2 2023. 2. 18. 11:02
반응형

1. 문제 정의

2. 문제 접근

PriorityQueue 를 이용하여 문제를 해결하면 될 것 같다.

3. 문제 풀이

1. PriorityQueue 에 사원들 능력치를 다 넣어준다.

2. for 문을 돌면서 2개를 빼내어 sum을 구한다.

3. 빼낸 만큼 다시 que에 넣어준다.

4. queue 를 하나씩 빼면서 정답에 더해준다.

5. 정답을 return 한다.

4. 코드

import java.util.*;

class Solution {  
    
    public int solution(int[] ability, int number) {
        int answer = 0;
        
        PriorityQueue<Integer> pq = new PriorityQueue<>();
        
        for(int x: ability){
            pq.add(x);
        }
        
         for(int i = 0; i < number; i++) {
            int sum = pq.poll() + pq.poll();
            pq.add(sum);
            pq.add(sum);
        }
        
        while(!pq.isEmpty()) {
             int queue = pq.poll();
             answer += queue;
        }
        
     
        
        return answer;
    }
}

5. 회고

 

Queue 를 이용한 문제들이 자주 출제되는 것 같다.

반응형