PROGRAMMERS_Lv2_๋ ๋งต๊ฒ
๐ [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์ ์ด์ฉํ๋ฉด ํจ์จ์ฑ ๋ถ๋ถ์์๋ ์ ์๋ฅผ ๋ฐ์ ์ ์๋ ๊ฒ์ด์๋ค.
์ฌ์ค ์ฐ์ ์์ ํ๋ฅผ ์ ์ดํดํ๊ณ ์์ง ๋ชปํด์ ๋ฌธ์ ๋ฅผ ์ ๋ชปํผ ๊ฒ ๊ฐ๋ค. ๊ธฐํ๊ฐ ๋๋ฉด ์ ๋ฆฌ๋ฅผ ํด์ผ๊ฒ ๋ค !!