๋ฐ์ํ
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ ๋งต๊ฒ
https://programmers.co.kr/learn/courses/30/lessons/42626
๋ฌธ์ ์ ๊ทผ
์ฃผ์ด์ง ์์ ๋ฐฐ์ด์์ ์ค์ฝ๋น์ง์๊ฐ ๊ฐ์ฅ ๋ฎ์ ๋ ์์์ ์์ด์ ๊ธฐ์ค์ธ K๋ฅผ ๋๊ฒจ์ผ ํ๋ค. ๋ ์์์ ์์ ๊ฒฐ๊ณผ๋ ๋ค์ ์์ ๋ฐฐ์ด์ ์ถ๊ฐํด์ ์ฐ์ฐ์ ํด์ผํ๊ธฐ ๋๋ฌธ์, ๊ณ์ํด์ ์ค๋ฆ์ฐจ์์ ์ ์งํ ์ ์๋ ์ต์ํ์ ์ฌ์ฉํ๋ค.
Code
import java.util.PriorityQueue;
class Solution {
public int solution(int[] scoville, int K) {
PriorityQueue<Integer> minHeap = new PriorityQueue<>();
for(int food: scoville) minHeap.add(food);
int answer = 0;
while(minHeap.size() >1 && minHeap.peek()<K){
int food1 = minHeap.poll();
int food2 = minHeap.poll();
minHeap.add(food1 + food2 * 2);
answer++;
}
if(minHeap.isEmpty() || minHeap.peek() < K) return -1;
else return answer;
}
}
๋ฐฐ์ด ์ / ์ด๋ ค์ ๋ ์ / ๋๋ ์
PriorityQueue๋ฅผ ์ฌ์ฉํด์ ์ต์ ํ์ ๊ฐ๋จํ๊ฒ ์ฌ์ฉํ ์ ์๋ค.
์ ์ธํ ๋ new PriorityQueue<>(Collections.reverseOrder()); ๋ฅผ ์ฌ์ฉํ๋ฉด ์ต๋ ํ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค.
// ์ต์ ํ
PriorityQueue<Integer> minHeap = new PriorityQueue<>();
// ์ต๋ ํ
PriorityQueue<Integer> maxHeap = new PriorityQueue<>(Collections.reverseOrder());
๋ฐ์ํ
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Algorithm/Java][ํ๋ก๊ทธ๋๋จธ์ค] ํ๋ฆฐํฐ (0) | 2022.03.05 |
---|---|
[Algorithm/Java][๋ฐฑ์ค] 14502 ์ฐ๊ตฌ์ (0) | 2022.03.05 |
[Algorithm/Java][ํ๋ก๊ทธ๋๋จธ์ค] ๊ธฐ๋ฅ๊ฐ๋ฐ (0) | 2022.02.18 |
[Algorithm/Java][ํ๋ก๊ทธ๋๋จธ์ค] ์นด์นด์คํ๋ ์ฆ ์ปฌ๋ฌ๋ง๋ถ (0) | 2022.02.17 |
[Algorithm/Java][๋ฐฑ์ค] 1676๋ฒ ํฉํ ๋ฆฌ์ผ 0์ ๊ฐ์ (0) | 2022.02.14 |