js 프로그래머스 음양 더하기

이명진·2022년 9월 14일
0

코드카타

목록 보기
37/69

문제요약

정수 양수와 음수가 주어진다. 그냥 더하고 빼면 된다.
두개의 배열이 주어지는데 하나는 숫자 배열 하나는 부호가 담긴 배열이다.
모두다 더한 값을 리턴하면 된다.

내가푼 풀이

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

그냥 단순하게 생각하여서 두개의 배열에서 하나씩 빼서 더하고 빼는 함수를 만들었다.
결과는 역시 올 클리어 테스트 시간도 준수하게 나왔다.

다른사람의 풀이

나와 비슷하게 푼 사람도 있었고 아래와 같이 reduce함수를 사용해서 푼것도 있었다.

function solution(absolutes, signs) {

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

리듀서 함수로 하나씩 더해가고 음수값을 구분해서 다음 숫자를 구분해줬다.
바로 리듀서 함수가 떠올랐어야 했는데 생각이 안나서 아쉽긴하다,

profile
프론트엔드 개발자 초보에서 고수까지!

0개의 댓글