자바스크립트

[JavaScript] 프로그래머 등차수열의 특정한 항만 더하기

코딩하는둥이 2024. 4. 12. 11:03

문제 설명

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

 

입출력 예

a d included result
3 4 [true, false, false, true, true] 37
7 1 [false, false, false, true, false, false, false] 10

 

코드

const solution = (a, d, included) => {
    return included.reduce((acc, cur, idx) => {
        return cur ? acc + a + d * idx : acc
    }, 0)
}
 

 

 

공부

 

reduce

: 함수를 실행하고 하나의 결과값으로 반환

더보기

특징

 1) 두개의 인자를 갖음

     acc(accumulator): 누적되는 값, 최종적으로 출력되는 값

     cur(current): 현재 돌고 있는 요소

     idx(index): 배열 요소의 순
 
 

 

코드 예시

 : 배열의 모근 요소를 합침

   reduce 함수는 배열의 각 요소를 순회하면서 누적계산을 하므로 초기값으로 0으로 설정하고, 각 욧를 더하며 최종덕으로 모든 요소의 합을 구함

const numbers = [1, 2, 3, 4, 5];
const sum = numbers.reduce((acc, cur) => acc + cur, 0);
console.log(sum); // 출력: 15