Algorithm/programmers

더 맵게

마닐라 2022. 2. 24. 13:44

📍 문제 설명

https://programmers.co.kr/learn/courses/30/lessons/42626

 

코딩테스트 연습 - 더 맵게

매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같

programmers.co.kr

 

💡 접근

우선순위큐 쓰는문제

 

👩‍💻 코드

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