프로그래머스 디펜스 게임 [JAVA] - 22년 12월 10일

Denia·2022년 12월 10일
0

코딩테스트 준비

목록 보기
115/201
import java.util.PriorityQueue;

class Solution {
    public int solution(int mySoldierNum, int superPass, int[] enemys) {
        if (superPass >= enemys.length) {
            return enemys.length;
        }

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

        for (int i = 0; i < superPass; i++) {
            pq.offer(enemys[i]);
        }

        int roundCheck = superPass;

        for (int i = superPass; i < enemys.length; i++) {
            int superPassMinValue = pq.peek();

            if (enemys[i] > superPassMinValue) {
                pq.poll();
                pq.offer(enemys[i]);

                if (superPassMinValue > mySoldierNum) {
                    break;
                } else {
                    mySoldierNum -= superPassMinValue;
                }
            } else {
                if (enemys[i] > mySoldierNum) {
                    break;
                } else {
                    mySoldierNum -= enemys[i];
                }
            }

            roundCheck++;
        }

        return roundCheck;
    }
}

profile
HW -> FW -> Web

0개의 댓글