본문 바로가기
💻 LEETCODE

[LEETCODE] 1480. Running Sum of 1d Array

by 구라미 2022. 11. 15.

 

Given an array nums. We define a running sum of an array as runningSum[i] = sum(nums[0]…nums[i]).
Return the running sum of nums.

숫자 배열을 줄테니, runningSum이라는 함수를 실행했을때 순서대로 숫자의 합이 담긴 배열을 리턴해라

# Example 1:

Input: nums = [1,2,3,4]
Output: [1,3,6,10]
Explanation: Running sum is obtained as follows: [1, 1+2, 1+2+3, 1+2+3+4].

#  Example 2:

Input: nums = [1,1,1,1,1]
Output: [1,2,3,4,5]
Explanation: Running sum is obtained as follows: [1, 1+1, 1+1+1, 1+1+1+1, 1+1+1+1+1].

# Example 3:

Input: nums = [3,1,2,10,1]
Output: [3,4,6,16,17]

 

제약조건

  • 1 <= nums.length <= 1000
  • -10^6 <= nums[i] <= 10^6

 

나의 풀이

class Solution:
    def runningSum(self, nums: List[int]) -> List[int]:
        sum = 0;
        arr = [];
        for idx, val in enumerate(nums):
            for j in nums[:idx + 1]:
                sum += j
                print(idx, val, j)
            arr.append(sum);
            sum = 0;
        return arr;

이렇게 했더니 자꾸 Output Limit Exceeded 가 떠서 제약조건을 다시 확인하고, 테스트용 출력인 print문을 제거하였다.

 

class Solution:
    def runningSum(self, nums: List[int]) -> List[int]:
        sum = 0;
        arr = [];
        if len(nums) > 1000:
            nums = nums[:1000]
        for idx, val in enumerate(nums):
            for j in nums[:idx + 1]:
                sum += j
            arr.append(sum);
            sum = 0;
        return arr;

 

다른 사람의 풀이

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

 

위와 같이 풀면 for문을 굳이 두번 쓸 필요가 없었다.

 

댓글