🔍 문제
- 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes,
- 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다.
- 실제 정수들의 합을 구하여 return 해준다.
⌨️ 입출력 예시
🙋♀️ 내가 푼 방식
- 문제 자체도 이해를 못했었음..
- reduce 이해하느라 힘들었다
function solution(absolutes, signs) {
// return할 answer 값 선언
var answer = 0;
// absolutes, signs 각각 연산에 따른 결과 값 넣어 줄 배열 선언
let newArr = [];
// absolutes와 signs의 길이는 항상 동일
// 반복문 같은 인자로 돌려도 무방
for(let i = 0; i < absolutes.length; i++) {
// signs의 i번째 배열이 true면,
if(signs[i]) {
// absolutes의 i번째 배열의 값을 그대로 newArr에 넣어주고,
newArr.push(absolutes[i]);
// signs의 i번째 배열이 false면,
} else {
// absolutes의 i번째 배열의 값dp -1 곱해서 newArr에 넣어준다.
newArr.push(absolutes[i] * -1);
}
}
// newArr에 들어있는 정수의 값을 구해야 하니
// 누산기 메소드 사용
// acc -> 누적 되어질 값
// curr -> 첫번째 배열값, 두번째 배열값, ... 각각의 배열값 돈다.
// function과 같이 초기값 0 주기
answer = newArr.reduce(function (acc, curr) {
// 초기값 = 초기값 + 배열의 첫번째 값
// 초기값 + 배열의 첫번째 값 = (초기값 + 배열의 첫번째 값) + 배열의 두번째 값
// ex) [4, -7, 12]
// --> 0 = 0 + 4
// -> 4 = 4 + (-7)
// -> -3 = -3 + 12
// ---> 9
acc = acc + curr;
return acc;
}, 0);
console.log(newArr)
return answer;
}