pq를 쓴 이유 : Collections.reverseOrder()를 통해 가장 내림차순으로 정렬하기 위해
그럼 왜 정렬한건가 -> greedy문제라고 판단했고, 가장 큰 값을 무적권
으로 막으면 최대한 많은 라운드를 진행할 수 있으니까.
import java.util.*;
class Solution {
public int solution(int n, int k, int[] enemy) {
int answer = enemy.length;
Queue<Integer> pq = new PriorityQueue<>(Collections.reverseOrder());
int my = n;
int card = k;
for (int i = 0; i < enemy.length; i++) {
my -= enemy[i];
pq.add(enemy[i]);
if (my < 0) {
if (card > 0 && !pq.isEmpty()) {
my += pq.poll();
card--;
} else {
answer = i;
break;
}
}
}
return answer;
}
}