728x90
https://programmers.co.kr/learn/courses/30/lessons/42626
반복문을 통해서 최솟값 2개를 반복해서 뽑아내면 되니까 우선순위 큐를 사용하여 구현했다
별건없다!
자바 코드)
import java.util.*;
class Solution {
public int solution(int[] scoville, int K) {
int answer = 0;
PriorityQueue<Integer> pq = new PriorityQueue<>();
for(int s : scoville) {
pq.add(s);
}
while(pq.peek()<K) {
if(pq.size()==1) {
return -1;
}
int min1 = pq.poll();
int min2 = pq.poll();
pq.add(min1+min2*2);
answer++;
}
return answer;
}
}
728x90
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[JAVA] 백준 11055번 - 가장 큰 증가 부분 수열 (0) | 2022.05.10 |
---|---|
[완전탐색] 모의고사 - JAVA (0) | 2022.04.30 |
[스택/큐] 주식가격 - JAVA (0) | 2022.04.28 |
[스택/큐] 다리를 지나는 트럭 - JAVA (0) | 2022.04.28 |
[스택/큐] 프린터 - JAVA (0) | 2022.04.25 |
댓글