등차수열의 특정한 항만 더하기

두 정수 a, d와 길이가 n인 boolean 배열 included가 주어집니다. 첫째항이 a, 공차가 d인 등차수열에서 included[i]가 i + 1항을 의미할 때, 이 등차수열의 1항부터 n항까지 included가 true인 항들만 더한 값을 return 하는 solution 함수를 작성해 주세요.

등차수열의 특정한 항만 더하기Lv.0

181931

https://school.programmers.co.kr/learn/courses/30/lessons/181931?language=javascript

해설

  • Name
    reduce 함수 사용
    Type
    Description

    included 배열에 reduce 메서드를 사용하여 배열의 각 요소에 대해 누적 계산을 수행합니다.

  • Name
    콜백 함수
    Type
    Description
    • acc는 누적값을 나타내고, cur는 현재 배열 요소의 값을 나타냅니다.

    • 현재 배열 요소(cur)가 참(true)일 경우, 누적값(acc)에 a의 값을 더합니다.

    • 각 반복 후 a의 값은 d만큼 증가합니다. 이는 다음 반복에서 사용될 새로운 a 값을 설정합니다.

예를 들어, a가 5, d가 3이고 included가 [true, false, true]인 경우, 함수는 다음과 같이 작동합니다.

  1. included[0]이 참이므로, 누적값에 5(초기 a 값)을 더합니다.
  2. included[1]이 거짓이므로, 누적값에 변화가 없습니다. 하지만 a는 이제 8이 됩니다(5 + 3).
  3. included[2]가 참이므로, 누적값에 현재 a 값인 8을 더합니다.

등차수열의 특정한 항만 더하기

function solution(a, d, included) {
    return included.reduce((acc, cur) => {
        if(cur){
            acc += a
        }
        a += d;
        return acc;
    }, 0)
}