์ตœ๋Œ€ 1 ๋ถ„ ์†Œ์š”

๐Ÿ“ [Lv2_42626] ๋” ๋งต๊ฒŒ

import java.util.*;

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

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

        // ์šฐ์„ ์ˆœ์œ„ ํ์— ๊ฐ’ ์ž…๋ ฅ
        for(int i=0; i<scoville.length; i++){
            heap.offer(scoville[i]);
        }

        // heap์—์„œ ๋ฝ‘์„ ๊ฐ’์ด K ๋ณด๋‹ค ํฌ๋ฉด ์ข…๋ฃŒ
        while(heap.peek() <= K){
            if(heap.size()==1){
                return -1;
            }

            // ๊ฐ’ 2๊ฐœ ๋ฝ‘๊ธฐ
            int a = heap.poll();
            int b = heap.poll();

            // ์Šค์ฝ”๋นŒ ์ง€์ˆ˜ ๊ณ„์‚ฐ
            int res = a + (b*2);

            // ์Šค์ฝ”๋นŒ ์ง€์ˆ˜ ์ž…๋ ฅ
            heap.offer(res);

            // ์นด์šดํŒ…
            answer++;
        }
        return answer;
    }
}

๐Ÿค” ๋‚˜์˜ ์ƒ๊ฐ

์ฒ˜์Œ์— ์šฐ์„ ์ˆœ์œ„ ํ๋ฅผ ์ƒ๊ฐํ•˜์ง€ ๋ชปํ•˜๊ณ  ๊ทธ๋ƒฅ ArrayList๋กœ ํ’€์—ˆ๋Š”๋ฐ ๊ณ„์†ํ•ด์„œ ๋‹ต์ด ์•ˆ๋‚˜์˜ค๋Š” ๊ฒƒ์ด ์˜€๋‹ค..
๊ทธ๋ž˜์„œ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ง๊ณ  IDE๋กœ ํ•˜๋‹ค๊ฐ€ ๊นจ๋‹ฌ์•˜๋‹ค.. remove๋ฅผ ํ•ด์ฃผ๋ฉด ๋ฐ”๋กœ ArrayList ํฌ๊ธฐ๊ฐ€ ์ค„๊ธฐ ๋•Œ๋ฌธ์— index๋ฅผ ์ž˜ ์„ค์ •ํ•ด์คฌ์–ด์•ผ ํ–ˆ๋Š”๋ฐ ๊ณ„์† ํ•œ ์นธ ๋„์šฐ๊ณ  ์„ค์ •์„ ํ•ด์ค˜์„œ ์›ํ•˜๋Š” ๊ฐ’์ด ์•ˆ๋‚˜์™”๋‹ค.
๊ทธ ์ดํ›„์— ๋ฌธ์ œ๋Š” ํ’€์—ˆ์ง€๋งŒ ํšจ์œจ์„ฑ ๋ถ€๋ถ„์—์„œ ์ ์ˆ˜๋ฅผ ๋ฐ›์ง€ ๋ชปํ•ด์„œ ์ข€ ์ฐพ์•„๋ณด๋‹ˆ ์šฐ์„ ์ˆœ์œ„ ํ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ heap์„ ์ด์šฉํ•˜๋ฉด ํšจ์œจ์„ฑ ๋ถ€๋ถ„์—์„œ๋„ ์ ์ˆ˜๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด์˜€๋‹ค.
์‚ฌ์‹ค ์šฐ์„ ์ˆœ์œ„ ํ๋ฅผ ์ž˜ ์ดํ•ดํ•˜๊ณ  ์žˆ์ง€ ๋ชปํ•ด์„œ ๋ฌธ์ œ๋ฅผ ์ž˜ ๋ชปํ‘ผ ๊ฒƒ ๊ฐ™๋‹ค. ๊ธฐํšŒ๊ฐ€ ๋˜๋ฉด ์ •๋ฆฌ๋ฅผ ํ•ด์•ผ๊ฒ ๋‹ค !!