C++/programmers 코딩테스트(level 2) C++

[C/C++] programmers Level 2 디펜스 게임 - 참고

CE : 하랑 2023. 11. 28. 20:06

 

 

 

 

코드

#include <queue> // priority_queue : 우선순위 큐
#include <vector>

using namespace std;

int solution(int n, int k, vector<int> enemy) {
    priority_queue<int, vector<int>, greater<int>> pq; // 우선순위 큐 : 내림차순
    
    for(int i=0;i<enemy.size();i++){
        pq.push(enemy[i]);
        
        if(pq.size()>k){ // 무적권 개수보다 pq 크기가 커지는 경우
            n=n-pq.top(); // n에서 pq.top 값 빼기
            pq.pop(); // pq.top 값 빼기
        }
        
        if(n<0){ // n 보다 작아지면 해당 인덱스 값 반환
            return i;
        }
    }
    
    return enemy.size(); // 모든 디펜스 넘어간 경우
}