알고리즘

프로그래머스 Level 1 -음양 더하기(Javascript)

또롱또 2022. 5. 13. 14:16
728x90

https://programmers.co.kr/learn/courses/30/lessons/76501

function solution(absolutes, signs) {
    var answer = 123456789;
    // 합을 담을 변수
    let sum = 0;
    
    // for loop으로 absolutes 길이만큼 돌린다
    for(let i=0; i<absolutes.length; ++i){
        // signs의 값이 true면
        if(signs[i] === true){
            // absolutes에 들어있는 값을 그냥 더해준다.
            sum += absolutes[i];
        // 만약 false면
        }else{
            // 값에 -1을 곱하고
            absolutes[i] *= -1
            // sum에 추가해준다
            sum += absolutes[i];
        }
    }
    
    //정답
    answer = sum
    return answer;
}

코드가 주구장창 늘어났지만, 단순하게 풀어냈다.

정답코드는 reduce를 사용해서 풀어냈다.

function solution(absolutes, signs) {

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