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

Heera1·2023년 8월 28일

Algorithm

목록 보기
8/8

문제설명

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

제한사항

1 ≤ a ≤ 100
1 ≤ d ≤ 100
1 ≤ included의 길이 ≤ 100
included에는 true가 적어도 하나 존재합니다.

입출력 예

function solution(a, d, included) {
    let arr = [a];
    
    for(let i = 1; i <= included.length; i++){
        arr[i] = arr[i-1] + d;
    }
    
    return arr.reduce((acc, cur, idx) => included[idx] ? acc+cur : acc, 0)
}

reduce

배열의 각 요소에 대해 주어진 리듀서 함수를 실행하고, 하나의 결과값을 반환.

arr.reduce(callback[, initialValue])

매개변수

accumulator

  • 콜백의 반환값을 누적.
  • 콜백의 이전 반환값 또는 콜백의 첫 번째 호출. initialValue를 제공한 경우 initialValue의 값.

currentValue

  • 처리할 현재 요소.

currentIndex

  • 처리할 현재 요소의 인덱스. initialValue를 제공한 경우 0, 1부터 시작.

initialValue

  • 콜백의 최초 호출에서 첫 번째 인수에 제공하는 값. 초기값을 제공하지 않으면 배열의 첫 번째 요소를 사용.
  • 빈 배열에서 초기값 없이 reduce() 호출 시 오류 발생.
profile
웹 개발자

0개의 댓글