
코드
#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(); // 모든 디펜스 넘어간 경우
}
'C++ > programmers 코딩테스트(level 2) C++' 카테고리의 다른 글
[C/C++] programmers Level 2 124 나라의 숫자 (2) | 2023.12.05 |
---|---|
[C/C++] programmers Level 2 게임 맵 최단거리 - 참고 (0) | 2023.12.04 |
[C/C++] programmers Level 2 시소 짝꿍 (0) | 2023.11.27 |
[C/C++] programmers Level 2 택배상자 (0) | 2023.11.16 |
[C/C++] programmers Level 2 다리를 지나는 트럭 (0) | 2023.11.13 |