< 문제 간단 설명 >
nums 라는 배열이 주어지면 각 원소를 순회하면서 누적합을 구해서 return 해주면 되는 문제이다.
/**
* @param {number[]} nums
* @return {number[]}
*/
var runningSum = function(nums) {
let result = [];
nums.reduce((acc, cur) => {
acc += cur;
result.push(acc);
return acc;
}, 0);
return result;
};
누적합을 구한다고 생각했을 때, 바로 떠오르는 method가 reduce() 였다.
acc 라는 누산기 역할을 하는 변수에 현재의 값인 cur을 계속 더해주면서 저장해준다.
위 코드에서 reduce의 맨 마지막에 들어가는 인자인 0은 acc의 초기값이다. 만약 초기값이 없이 한다면 초기값은 자동으로 배열의 맨 첫번째 요소가 된다.
따라서 acc의 현재의 값인 cur을 더해주고 result에 push를 해준다.
이때 acc를 return 해주어야 하는데, 그래야 다음 순회에서 return된 acc을 그대로 가져가서 쓸 수 있기 때문이다.
'PS > LeetCode' 카테고리의 다른 글
LeetCode / Linked List / 21번 / Merge Two Sorted Lists / JS (0) | 2023.03.29 |
---|---|
LeetCode / String /392번 / Is Subsequence / JS (0) | 2023.03.27 |
LeetCode / String / 205번 / Isomorphic Strings / JS (0) | 2023.03.27 |
LeetCode / Prefix Sum / 724번 / Find Pivot Index / JS (0) | 2023.03.25 |