개발 일지
985. Sum of Even Numbers After Queries (쿼리 후 짝수의 합) 본문
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에 추가해주고 이 작업을 반복해주었습니다.
'코딩 테스트 > LeetCode' 카테고리의 다른 글
136. Single Number (단일 번호) (0) | 2023.06.04 |
---|---|
1437. Check If All 1's Are at Least Length K Places Away (1 항목 모두 길이 K 이상 떨어져 있는지 확인) (0) | 2023.05.31 |
70. Climbing Stairs (계단 오르기) (0) | 2023.05.23 |
2235. Add Two Integers (두 정수 더하기) (0) | 2023.05.22 |
547. Number of Provinces (지방의 수) (0) | 2023.05.18 |