[LeetCode] K Items With the Maximum Sum

아르당·4일 전

LeetCode

목록 보기
552/563
post-thumbnail

문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음

Problem

아이템이 들어있는 가방이 있고, 각 아이템은 숫자 1, 0, -1이 적혀있다.
음수가 아닌 네 정수 numOnes, numZeros, numNegOnes, k가 주어진다.
가방은 처음에 다음을 포함한다.

  • 1이 적힌 아이템 numOnes
  • 0이 적힌 아이템 numZeros
  • -1이 적힌 아이템 numNegOnes

이용 가능한 아이템 중 정확히 k개의 항목을 선택하고자 한다. 항목들에 적힌 수들의 합이 최대가 되도록 할 때, 그 최댓값을 반환해라.

Example

#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이 된다.

Constraints

  • 0 < numOnes, numZeros, numNegOnes <= 50
  • 0 <= k <= numOnes + numZeros + numNegOnes

Solved

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;
    }
}
profile
내 마음대로 코드 작성하는 세상

0개의 댓글