-
728x90
모든 스코빌 지수가 처음부터 K보다 클 땐
0을 리턴해야 될 것 같은데,
이 처리를 안 해도 통과됐당.. ㄷㄷ[ 풀이 방법 ]
- 우선순위 큐를 사용해서, queue를 스코빌 지수 순으로 가지고 있는다.
- 스코빌 지수를 섞을 수 있는 경우 : queue.size >= 2 계산을 한다.
- 모든 지수가 K이상이면, answer을 리턴한다.
- while문 종료 될 때까지 리턴할 수 없다면 만들 수 없으므로 -1을 리턴한다.
[ 전체 코드 ]
import java.util.PriorityQueue;class Solution {public int solution(int[] scoville, int K) {PriorityQueue<Integer> queue = new PriorityQueue<Integer>();for (int n : scoville)queue.offer(n);int answer = 0;while (queue.size() >= 2) {int a = queue.poll();int b = queue.poll();queue.offer(a + b * 2);answer++;if (queue.peek() >= K)return answer;}return -1;}}데롱디롱희희.. (๑′ᴗ‵๑)
'알고리즘 풀이 > 프로그래머스' 카테고리의 다른 글
[level2] 프로그래머스 - 행렬 테두리 회전하기(JAVA) (0) 2021.09.19 [level2] 프로그래머스 - 짝지어 제거하기(JAVA) (0) 2021.09.18 [level3] 프로그래머스 - 베스트앨범(JAVA) (1) 2021.09.17 [level2] 프로그래머스 - 프린터(JAVA) (0) 2021.09.17 [level3] 프로그래머스 - 가장 먼 노드(JAVA) (0) 2021.09.17