반응형
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 를 이용한 문제들이 자주 출제되는 것 같다.
반응형
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
PCCP 모의고사 2회 - 보물 지도 (0) | 2023.02.18 |
---|---|
PCCP 모의고사 2회 - 카페 확장 (1) | 2023.02.18 |
PCCP 모의고사 2회 - 실습형 로봇 (0) | 2023.02.18 |
PCCP 모의고사 1회 - 유전법칙 (0) | 2023.02.18 |
PCCP 모의고사 1회 - 체육대회 (0) | 2023.02.18 |