프로그래머스 (JS)/Lv. 1

[Programmers / JS] 76501번 - 음양 더하기

hodo- 2023. 3. 14. 15:04

Problem

문제 보기

어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요.


Solution

function solution(absolutes, signs) {
    for(let i = 0; i < signs.length; i++){
        if(signs[i] === false) absolutes[i] = -absolutes[i]; 
    }
    return absolutes.reduce((a, b) => a + b);
}

abs의 해당 signs가 false라면 음수가 되도록 해주고 총 합을 더했다

다른 풀이를 보니 삼항연산자로 한줄로 적을 수 있었다

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