๐ŸŒท๐ŸŒผ๋ชจ์—ฌ๋ด์š” ๊ฐœ๋ฐœ์˜์ˆฒ๐ŸŒท๐ŸŒผ

[JAVA/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋” ๋งต๊ฒŒ ๋ณธ๋ฌธ

๊ฐœ๋ฐœ/์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ’€์ด JAVA

[JAVA/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋” ๋งต๊ฒŒ

์š”์ผ์ด 2023. 3. 16. 12:14
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ

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

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

 

 

ํ’€์ด

import java.util.*;

class Solution {
     public int solution(int[] scoville, int K) {
        int answer = 0;
        boolean b = true;

        PriorityQueue<Integer> pq = new PriorityQueue<>();

        for(int i=0; i< scoville.length; i++){
            pq.add(scoville[i]);
        }

        if(pq.peek() >= K){
            b = false;
        }

        while(b){

            if(pq.size() < 2){
                return -1;
            }

            answer++;

            int x = pq.poll();
            int y = pq.poll();

            int p = x+(y*2);
            pq.add(p);

            if(pq.peek() >= K){
                b = false;
            }
        }

        return answer;
    }

}

1๋ฒˆ 3๋ฒˆ ํ‹€๋ฆฌ๋Š” ์ด์œ ๋Š” PriorityQueue ์‚ฌ์ด์ฆˆ ์ฒดํฌ๋ฅผ ์•ˆํ•ด์คฌ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค

Comments