https://leetcode.com/problems/sum-of-even-numbers-after-queries/
Sum of Even Numbers After Queries - LeetCode
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
leetcode.com
val을 더하기 전에 홀수였냐 짝수였냐, 더한 후에 홀수냐 짝수냐를 고려해야 되는 문제이다.
한번에 한 숫자에 대해서만 작업하므로 even sum을 미리 구해놓고 상황에 따라 더하거나 빼는 식으로 실시간 업데이트를 해주면 된다.
class Solution:
def sumEvenAfterQueries(self, nums: List[int], queries: List[List[int]]) -> List[int]:
answer = []
sumeven = sum(x for x in nums if x % 2 == 0)
for val,index in queries:
before = nums[index]
nums[index] += val
if nums[index] % 2 == 0:
sumeven += nums[index] if before % 2 == 1 else val
elif before % 2 == 0:
sumeven -= before
answer.append(sumeven)
return answer
다른분이 쓴 코드중에 좀더 깔끔한거
def sumEvenAfterQueries(self, A: List[int], queries: List[List[int]]) -> List[int]:
s = sum(a for a in A if a % 2 == 0)
ans = []
for val, idx in queries:
if A[idx] % 2 == 0:
s -= A[idx]
A[idx] += val
if A[idx] % 2 == 0:
s += A[idx]
ans.append(s)
return ans
'코딩 테스트 및 알고리즘 > leetcode for google' 카테고리의 다른 글
leetcode : Palindrome Partitioning (0) | 2022.09.22 |
---|---|
leetcode : Maximum Score from Performing Multiplication Operations (0) | 2022.09.22 |
leetcode : Find Original Array From Doubled Array (0) | 2022.09.21 |
leetcode : Maximum Length of Repeated Subarray (0) | 2022.09.20 |
leetcode : Trapping Rain Water (1) | 2022.09.20 |