1d 배열의 누계 – LeetCode
이 실제 인터뷰 질문을 해결할 수 있습니까? 1d 배열의 실행 합계 – 숫자 배열이 주어집니다. 배열의 누적 합계를 runningSum(i) = sum(nums(0)…nums(i))으로 정의합니다. 숫자의 누적 합계를 반환합니다. 예 1: 입력: 숫자 = (1,2,3,4) 출력: (1,3,6,
leetcode.com
< Kurze Beschreibung des Problems >
nums라는 배열에서 문제는 누적 합계를 찾아 반환하기 위해 각 요소를 반복하는 것입니다.
/**
* @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;
};
누적합을 구할 생각을 하니 바로 Reduce() 메서드가 떠올랐습니다.
현재 값 cur은 누산기 변수에 지속적으로 추가되어 저장됩니다.
위 코드에서 Reduce의 마지막 인수인 0은 acc의 초기값이다. 초기값이 없으면 초기값은 자동으로 배열의 첫 번째 요소입니다.
따라서 acc의 현재 값인 cur을 추가하고 결과를 누릅니다.
이때 반환된 acc를 다음 반복에서 가져와 사용할 수 있도록 acc를 반환해야 합니다.