728x90
반응형
🔗 문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/142085
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
반응형
728x90
👩💻 코드
#include <string>
#include <vector>
#include <queue>
#include <iostream>
using namespace std;
int solution(int n, int k, vector<int> enemy) {
priority_queue<int> pq;
int sum = 0;
for (int i = 0; i < enemy.size(); i++) {
pq.push(enemy[i]);
sum += enemy[i];
if (sum > n) {
if (k > 0) {
sum -= pq.top();
pq.pop();
k--;
} else {
return i;
}
}
}
return enemy.size();
}
📝 풀이
라운드가 시작하면 적의 수를 우선순위 큐에 넣고, 적의 총 수를 계산합니다.
적의 총 수가 병사의 수보다 많으면 가장 많은 적이 나오는 라운드에 무적권을 사용합니다.
만약 무적권이 없다면 그 라운드가 최대이기 때문에 i를 return 합니다.
반복문이 종료되면 모든 라운드를 막았다는 의미이므로 모든 라운드 값을 return 합니다.
728x90
반응형
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 멀쩡한 사각형 (2) | 2024.10.10 |
---|---|
[프로그래머스] 하노이의 탑 (1) | 2024.10.10 |
[프로그래머스] 가장 큰 정사각형 찾기 (1) | 2024.10.09 |
[프로그래머스] 거리두기 확인하기 (5) | 2024.10.09 |
[프로그래머스] 리코쳇 로봇 (1) | 2024.10.06 |