https://school.programmers.co.kr/learn/courses/30/lessons/142085
프로그래머
코드 중심 개발자를 모집합니다. 스택 기반 위치 일치. 프로그래머의 개발자별 프로필에 등록하고 귀하와 기술 호환성이 좋은 회사와 연결하십시오.
Programmers.co.kr
function solution(n, k, enemy) {
var answer = 0;
const (arr, invincibility) = (enemy.reduce((acc, e) => ((acc(e) = ++acc(e) || 1), acc), ()), {});
for (let i = arr.length - 1, tempK = k; i >= 0 && tempK; --i) {
if (!arr(i)) continue;
if (tempK <= arr(i)) {
invincibility(i) = tempK;
tempK = 0;
} else {
invincibility(i) = arr(i);
tempK -= arr(i);
}
}
for (e of enemy) {
if (invincibility(e) && k) {
--k, --invincibility(e), ++answer;
continue;
}
if (n < e && k) --k, ++answer;
else if (n >= e) (n -= e), ++answer;
else break;
}
return answer;
}
GitHub :