문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음
아이템이 들어있는 가방이 있고, 각 아이템은 숫자 1, 0, -1이 적혀있다.
음수가 아닌 네 정수 numOnes, numZeros, numNegOnes, k가 주어진다.
가방은 처음에 다음을 포함한다.
이용 가능한 아이템 중 정확히 k개의 항목을 선택하고자 한다. 항목들에 적힌 수들의 합이 최대가 되도록 할 때, 그 최댓값을 반환해라.
#1
Input: numOnes = 3, numZeors = 2, numNegOnes = 0, k = 2
Output: 2
Explanation: 숫자 {1, 1, 1, 0, 0} 적힌 아이템이 들어있는 가방을 갖는다. 1이 적힌 항목 2개를 합하면 2가 된다.
#2
Input: numOnes = 3, numZeros = 2, numNegOnes = 0, k = 4
Output: 3
Explanation: 숫자 {1, 1, 1, 0, 0} 적힌 아이템이 들어있는 가방을 갖는다. 1이 적힌 항목 3개와 0이 적힌 항목 1개를 합하면 3이 된다.
class Solution {
public int kItemsWithMaximumSum(int numOnes, int numZeros, int numNegOnes, int k) {
if (k <= numOnes) {
return k;
}
int sum = numOnes;
k = k - numOnes;
if (k <= numZeros) {
return sum;
}
k = k - numZeros;
sum = sum - k;
return sum;
}
}