Back to all posts
음양 더하기
Written by ppotatoG & Posted on January 8th, 2022
처음 제출한 답
a
를 돌며 bool값을 판단해서 원본배열의 값을 바꿔줌
중복문 밖에서 reduce로 모든 값 더해주기
function solution(a, s) {for(let i = 0; i < a.length; i++){if(s[i] === false) a[i] *= -1;}return a.reduce((a, b) => a + b);}
두번째
위에서 사용한 중복문 부분을 map으로 변경
function solution(a, s) {return a.map((c, i) => s[i] === false? a[i] *= -1 : a[i]).reduce((a, b) => a + b);}
마지막
reduce로 한번에 해결
reduce안에서 , 0)
부분이 포인트다
function solution(absolutes, signs) {return absolutes.reduce((acc, val, i) => acc + (val * (signs[i] ? 1 : -1)), 0);}
최근 보충한 내용
마지막이랑 비슷하지만 조건이 전체로 들어가 있음
bool값은 0
, 1
로 판단할 수 있지만 그냥 !
로도 가능
function solution(a, s) {return a.reduce((a, b, i) => !s[i] ? a + (b * -1) : a + b, 0);}