음양 더하기 - 프로그래머스 알고리즘 연습 js

YOUNGJOO-YOON·2021년 6월 28일
0

알고리즘

목록 보기
2/12

문제

  • 선후기 : 이번 문제는 쉽게 느껴짐.

function solution(absolutes, signs) {
    var answer = 0;
    
    absolutes.map((v,i)=>{if(signs[i]){ // 1
    answer+=v;    // 2
    }else{
        answer-=v; // 3
   }
  })
    return answer; // 4
}

1 번 주어진 절댓값 배열을 순회하므로 map함수를 사용하고 absolutes와 signs의 길이는 같으므로 index 매개변수도 함께 사용할 수 있다.

2 번 if문을 통해 signs가 true인 경우 양수를 의미한다고 적혀있으므로 더해주고

3 번 if문을 통과하지 못한 경우 음수를 의미하므로 빼준다.

4 번 반환값을 주면 끝.



// 좋은 코드
function solution(absolutes, signs) {

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

1 번 어차피 총 합을 구하는 것이므로 reduce 함수를 통해 acc 값에 계속 더해준다.
val값은 value이므로 absolute의 값이 순서대로 들어오고 signs[i]는 삼항연산자를 통해 val과 곱하게 되는데 양수의 경우 1을 곱해주고 음수의 경우 -1을 곱해준다.

개인적으로 좋지만 읽기 좋은지는 잘 모르겠다.

profile
이 블로그의 글은 제 생각을 정리한 글과 인터넷 어딘가에서 배운 것을 정리한 글입니다. 출처는 되도록 남기도록 하겠습니다. 수정 및 건의 오류 등이 있으면 언제든지 댓글 부탁드립니다.

0개의 댓글