[JAVA 문제 풀이] 386. 디펜스 게임

프로그래머스 (142085)
Stupefyee's avatar
Jul 18, 2025
[JAVA 문제 풀이] 386. 디펜스 게임
notion image
 

내가 작성한 코드

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

stupefyee