Contents
내가 작성한 코드
내가 작성한 코드
import java.util.*;
// 디펜스 게임
// n = 가진 병사 수
// k = 무적권
// enemy[i] = 병사의 수
class Solution {
public int solution(int n, int k, int[] enemy) {
// 내림차순 정렬 큐
PriorityQueue<Integer> q = new PriorityQueue<>(Collections.reverseOrder());
int answer = 0;
for (int e : enemy) {
n -= e; // 병사 사용
q.add(e); // 해당 라운드의 적 수를 큐에 넣음
// 병사가 부족할 경우
if (n < 0) {
if (k == 0)
break; // 무적권도 없으면 종료
int largest = q.poll(); // 지금까지 중 가장 많은 적이 나온 라운드
n += largest; // 그 라운드에 무적권 사용한 걸로 처리
k--; // 무적권 사용 횟수 감소
}
answer++; // 라운드 통과
}
return answer;
}
}
Share article