https://programmers.co.kr/learn/courses/30/lessons/42626
우선순위 큐 사용 풀이
/**
1. 우선순위 큐로 음식을 넣고,
2. 큐의 사이즈가 2이상이면서 가장 앞의 원소가 k보다 적을 때 2개를 빼서 더해서 넣기
2-1) 첫번째 원소 + 두번째원소*2
3. 큐의 맨 앞의 원소가 k보다 같거나 크면 섞은 횟수 반환
4. 불가능하면 -1 반환
**/
import java.util.*;
class Solution {
public int solution(int[] scoville, int K) {
PriorityQueue<Integer> q = new PriorityQueue<>();
for(int s : scoville){
q.offer(s);
}
int cnt = 0;
while(q.size() > 1 && q.peek() < K){
int a = q.poll();
int b = q.poll()*2;
q.offer(a+b);
cnt++;
}
return q.peek() < K ? -1 : cnt;
}
}
'Algorithm > 프로그래머스풀이' 카테고리의 다른 글
[알고리즘 문제풀이] 프로그래머스 - n진수게임 / JAVA(자바) (0) | 2022.03.08 |
---|---|
[알고리즘 문제풀이] 프로그래머스 - 기능개발 / JAVA(자바) (0) | 2022.03.07 |
[알고리즘 문제풀이] 프로그래머스 - 프렌즈4블록 / JAVA(자바) (0) | 2022.03.06 |
[알고리즘 문제풀이] 프로그래머스 - 순위 검색 / JAVA(자바) (0) | 2022.03.05 |
[알고리즘 문제풀이] 프로그래머스 - [1차] 캐시 / JAVA(자바) (0) | 2022.03.04 |
댓글