📍 문제 설명
https://programmers.co.kr/learn/courses/30/lessons/42626
💡 접근
우선순위큐 쓰는문제
👩💻 코드
import java.util.*;
class Solution {
static int[] dx = {-1,1,0,0};
static int[] dy = {0,0,-1,1};
static char[] c = {'A', 'C', 'F', 'J', 'M', 'N', 'R', 'T'};
static int[] arr;
static char[] arr2;
static HashMap<Character, Integer> map;
static boolean[] visited;
static String[] clone;
static int answer;
public int solution(int[] scoville, int K) {
int answer = 0;
PriorityQueue<Integer> pq = new PriorityQueue<>();
for(int i = 0; i < scoville.length; i++) pq.offer(scoville[i]);
//첫 원소가 K 이상이 될 때 까지 반복
while(pq.peek() < K) {
if(pq.size() == 1) return answer = -1;
int a = pq.poll();
int b = pq.poll();
pq.offer(a+(b*2));
answer++;
}
return answer;
}
public static void main(String[] args) {
Solution s = new Solution();
int[] scoville = {1,2,3,9,10,12};
int k = 7;
s.solution(scoville, k);
}
}
'Algorithm > programmers' 카테고리의 다른 글
[2021 데브매칭]행렬 테두리 회전하기 (0) | 2022.02.24 |
---|---|
타겟넘버 (0) | 2022.02.24 |
기능개발 (0) | 2022.02.24 |
[2017 카카오코드]단체사진 찍기 (0) | 2022.02.23 |
[2017 카카오코드]카카오프렌즈 컬러링북 (0) | 2022.02.23 |