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

크롱·2023년 9월 28일
0

코딩테스트

목록 보기
19/61

문제

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

signs가 [true,false,true] 이므로, 실제 수들의 값은 각각 4, -7, 12입니다.
따라서 세 수의 합인 9를 return 해야 합니다.

나의 풀이

생각해보니 ==true를 안써도됨

function solution(absolutes, signs) {
    var answer = 0;
    for(let i=0;i<signs.length;i++){
        signs[i]==true? 
         answer= answer+ absolutes[i] : answer= answer- absolutes[i]
    }
    return answer;
}

다른 풀이

reduce

function solution(absolutes, signs) {

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

forEach

function solution(absolutes, signs) {
    let answer = 0;
    absolutes.forEach((v, i) => {
        if (signs[i]) {
            answer += v;
        } else {
            answer -= v;
        }
    })
    return answer;
}
profile
👩‍💻안녕하세요🌞

0개의 댓글