코테

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

콩쥐땃쥐 2025. 1. 8. 03:07

 

function solution(a, d, included) {
    var answer = a;
    for(let i = 0; i < included.length; i++){
        if (included[i] === true)  {
            answer += a + d * i;
        }
        if (included[i] === false) {
            included[0] === false ? answer - a : answer += 0;
        }
    }
    return answer - a;
}

다른 사람들의 코드를 보다가 더 줄일 수 있을 것 같다는 생각에 삼항연산자를 사용

 

function solution(a, d, included) {
    var answer = 0;
    for(let i = 0; i < included.length; i++){
        included[i] ? answer += a + (d * i) : answer += 0;
    }
    return answer;
}

오예~

전 -> 후

줄어든 시간들이 보이나? 아름답구만

 

function solution(a, d, included) {
    return included.reduce((acc, flag, i) => {
        return flag ? acc + a + d * i : acc
    }, 0)
}
function solution(a, d, included) {
    var answer = 0;
    // an = a + d(n - 1);
    for(let i = 0; i < included.length; i++) {
        if(included[i]) {
            answer += (a + (d * i))
        }
    }
    return answer;
}

이건 다른 사람들의 풀이이다.

첫 번째 코드를 보면 reduce를 사용하고 있는데, reduce에 대해 다시 생각해봐야 할 것 같다.