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

 

+ Recent posts