LeetCode/Heap

[Medium] 1046. Last Stone Weight (구글 코딩 테스트 기출문제)

Developer07 2022. 10. 6. 03:40

#문제 설명

#문제 풀이

class Solution {
    public int lastStoneWeight(int[] stones) {
        PriorityQueue<Integer> maxHeap = new PriorityQueue<>(Collections.reverseOrder());

        int sum = 0;

        for(int i = 0; i < stones.length; i++){
            maxHeap.add(stones[i]);
            sum += stones[i];
        }
            int size = maxHeap.size();

        while(maxHeap.size() > 1){
            int num1 = 0;
            int num2 = 0;

            if(maxHeap.size() >= 2){
            num1 = maxHeap.poll();
            num2 = maxHeap.poll();
            }
            maxHeap.add(num1 - num2);
            sum -= num1 + num2 - (num1 - num2);
        } 
        
        return sum;
         
    }
}