Python/algorithm

[Leetcode] 480. Running Sum of 1d Array

baecode 2022. 12. 19. 23:36
반응형

Problem

- 이 문제는 누적 합을 구하는 문제에용

 

시원하게 생각나는대로 풀어버린 나의 풀이

class Solution:
    def runningSum(self, nums: List[int]) -> List[int]:
        return[sum(nums[:idx+1]) for idx,n in enumerate(nums)]

다른 코드들에 비해 런타임이 길고 메모리사용량이 높아서 너무 궁금해서 다른 풀이 두가지를 찾아보았다

 

평균적인 런타임 수치의 풀이

class Solution:
    def runningSum(self, nums: List[int]) -> List[int]:
        return list(accumulate(nums))

itertools 에 있는 accumulate를 이용하여 값을 뽑았다 !

누적합을 구해주는 굉장히 유용한 기능인듯 하다.

 

상위 런타임 수치의 풀이

class Solution:
    def runningSum(self, nums: List[int]) -> List[int]:
        for i in range(1,len(nums)):
            nums[i] += nums[i-1]
        return nums

첫번째 값은 상관이 없는 점과 이전 index를 이용하여 누적합을 하는 생각을 하는 코드이다

 

- 자주자주 풀고 공부하며 잘 자고있는 뇌를 깨우자!

반응형