Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

개발 일지

985. Sum of Even Numbers After Queries (쿼리 후 짝수의 합) 본문

코딩 테스트/LeetCode

985. Sum of Even Numbers After Queries (쿼리 후 짝수의 합)

포카리tea 2023. 5. 24. 02:07

queries[i] = [vali, index]인 정수 배열 nums와 배열 queries가 제공됩니다.

각 쿼리 i에 대해 먼저 nums[indexi] = nums[indexi] + val를 적용한 다음 nums의 짝수 값 합계를 추합니다.

정수 배열 answer을 반환합니다. 여기서 answer[i]는 i번째 쿼리에 대한 응답입니다.

 

예시 1:

입력: nums = [1,2,3,4], 쿼리 = [[1,0], [-3,1], [-4,0], [2,3]
출력: [8,6,2,4]
설명: 처음에 배열은 [1,2,3,4]입니다.
nums[0]에 1을 더하면 배열은 [2,2,3,4]이고 짝수 값의 합은 2 + 2 + 4 = 8입니다.
nums[1]에 -3을 더하면 배열은 [2, -1, 3, 4]이고 짝수 값의 합은 2 + 4 = 6입니다.
nums[0]에 -4를 더하면 배열은 [-2,-1,3,4]이고 짝수 값의 합은 -2 + 4 = 2입니다.
nums[3]에 2를 더하면 배열은 [-2,-1,3,6]이고 짝수 값의 합은 -2 + 6 = 4입니다.

 

예시 2:

입력: nums = [1], queries = [[4,0]]
출력: [0]

 

조건:

  • 1 <= nums.length <= 10^4
  • -10^4 <= nums[i] <= 10^4
  • 1 <= queries.length <= 10^4
  • -10^4 <= vali <= 10^4
  • 0 <= indexi < nums.length

 

정답:

public class Solution {
    public int[] SumEvenAfterQueries(int[] nums, int[][] queries) {
        int[] result = new int[] { };
        
        for (int i = 0; i < queries.Length; i++)
        {
            int evenSum = 0;

            nums[queries[i][1]] += queries[i][0];

            for (int j = 0; j < nums.Length; j++)
            {
                if (nums[j] % 2 == 0)
                {
                    evenSum += nums[j];
                }
            }
            
            Array.Resize(ref result, result.Length + 1);
            result[result.Length - 1] = evenSum;
        }

        return result;
    }
}

해설: 

queries[i][1]는 위치이고 queries[i][0]는 더할 값이므로 해당 배열을 처리한 후 짝수를 모두 더한 값을 result에 추가해주고 이 작업을 반복해주었습니다.