https://programmers.co.kr/learn/courses/30/lessons/42626
μ½λ
import java.util.*;
class Solution {
public int solution(int[] scoville, int K) {
int answer = 0;
Queue<Integer> pq = new PriorityQueue<Integer>();
// μ°μ μμ νμ λ°°μ΄κ° μ μ₯
for(int i : scoville) pq.offer(i);
// μ°μ μμ νμ μ€μ½λΉμ§μ Kλ³΄λ€ κ°μ΄ μμλ λ°λ³΅
while(pq.peek() < K){
// νμ¬ μ°μ μμ νμ κ°μ΄ νκ°λ§ μ‘΄μ¬νκ³ , κ·Έκ°μ΄ Kλ³΄λ€ μμΌλ―λ‘ μ€μ½λΉμ§μλ₯Ό λ§λ€ μ μμ -> -1 리ν΄
if(pq.size() == 1)
return -1;
// μμ μμμ μ€μ½λΉ μ§μ = κ°μ₯ λ§΅μ§ μμ μμμ μ€μ½λΉ μ§μ + (λ λ²μ§Έλ‘ λ§΅μ§ μμ μμμ μ€μ½λΉ μ§μ * 2)
int a = pq.poll();
int b = pq.poll();
pq.offer(a+(2*b));
answer ++;
}
return answer;
}
}
νμ΄
μ°μ μμνλ₯Ό μ¬μ©νλ λ¬Έμ λ‘, ν μλ£κ΅¬μ‘°μ λν κ°λ μ΄ λΆμ‘±νκ³ ,, μ°μ μμνλ μ¬μ€ κ±°μ μ²μ μ¬μ©ν΄ 보λ κ² κ°λ€. λ€μμ μκ°λ λ νμλν΄ μ 리λ₯Ό ν΄μΌκ² λ€.
μ°μ μμ νλ νμ μΌμ’ μ΄μ§λ§, νμλ λ€λ₯΄κ² κΈ°μ‘΄μ μ μ μ μΆμ΄ μλ μ°μ μμκ° λμ μμλλ‘ λ°ννλ€.
μ¦ μ μ°μ μμ pqμ μ΄λ ν κ°μ΄ μλ μ°μ μμκ° κ°μ₯ λμ(κ°μ₯ μμκ°) κ°μ΄ peek()μ μν΄ Kμ λΉκ΅κ° λλ€.
Kλ³΄λ€ μμλ, κ°μ₯ μμ κ° λ κ°λ₯Ό λΉΌλ΄κ³ μ΄ λ κ°μ κ°μ ν΅ν΄ μλ‘μ΄ κ°(μ€μ½λΉμ§μ)μ λ§λ λ€.
μ¦ λ°μ΄ν°λ€μ΄ μ°μ μμμλ°λΌ μλμΌλ‘ μ λ ¬λλ νΈλ¦¬ν μλ£κ΅¬μ‘°μ΄λ€ !
'Algorithm' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ°±μ€] 13904λ²: κ³Όμ (그리λ) (0) | 2020.03.22 |
---|---|
[Codeforces] 1300A: Non-zero (0) | 2020.03.21 |
[λ°±μ€] 3085λ²: μ¬ν κ²μ(μμ νμ) (2) | 2020.03.19 |
[λ°±μ€] 1417λ²: κ΅νμμ μ κ±°(μμ νμ) (0) | 2020.03.19 |
νλ‘κ·Έλλ¨Έμ€[Java] - (Level2)μ€ν¬νΈλ¦¬ (2) | 2020.03.19 |
λκΈ