[프로그래머스 | JavaScript] 음양 더하기

728x90
반응형

(1) 내 코드

function solution(absolutes, signs) {
    let num_signs = [];
    let cal = [];

    signs.forEach((x) => {
        if (x == true) {
            num_signs.push(1);
        } else {
            num_signs.push(-1);
        }
    });

    for (let i = 0; i < absolutes.length; i++) {
        cal.push(absolutes[i] * num_signs[i]);
    }

    return cal.reduce((a, c) => a + c, 0);
}

num_signs 에 true면 1 / false면 -1 추가

▶ 배열의 길이만큼 돌면서 absolutes 배열의 인덱스와num_signs배열의 같은 인덱스끼리

     곱하기 (숫자 * 1 또는 숫자 *-1)

▶ 배열의 합 : reduce 사용

 

(2) 다른 사람 풀이

function solution(absolutes, signs) {

    return absolutes.reduce((acc, val, i) => acc + (val * (signs[i] ? 1 : -1)), 0);
}

reduce의 인덱스를 활용하여 1과 -1값을 계산 후 더함

 

끝.

반응형