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

728x90
반응형

1. 내가 푼 풀이

function solution(absolutes, signs) {
    let num_signs =[]; // true =1, false =-1
    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); 
}

* true =1 / false = -1로 변경 > 각각의 배열 위치에 곱하기해서 절대값 구함 > reduce로 더하기

 

2. 다른 사람 풀이

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

2-1. 강의 풀이

function solution(absolutes, signs) {
    let answer = 0;
		// 두 배열 길이 같음
    for (let i = 0; i < absolutes.length; i++) {
				// 부호에 따라 +-
        signs[i] ? answer += absolutes[i] : answer -= absolutes[i]
    }
    return answer;
}

* (signs[i] === true) > answer += absolutes[i]

* (signs[i] === false) > answer -= absolutes[i]

 

[출처]

1. 프로그래머스

 

 

반응형