Oops, All Code!/🤯 Oops, My Algorithm!
♡̈ 13. 프로그래머스:: 음양 더하기
밍동망동
2024. 7. 12. 12:07
먼저, absolutes와 signs가 주어질 때 합을 구해야한다.
1. absolutes와 signs를 순회하며 각각의 절대값에 부호를 적용한다.
2. 부호를 적용한 정수를 합산해 결과를 반환한다.
반복문 사용
function solution(absolutes, signs) {
let sum = 0;
for (let i = 0; i < absolutes.length; i++) {
if (signs[i]) {
sum += absolutes[i];
} else {
sum -= absolutes[i];
}
}
return sum;
}
이렇게 간단한 코드를 제출했는데,
제출하고보니 어차피 동일한 연산을 반복하는거면 reduce도 사용할 수 있지않나 싶다.
reduce 사용
function solution(absolutes, signs) {
return absolutes.reduce((sum, absolute, index) => {
return sum + (signs[index] ? absolute : -absolute);
}, 0);
}
더 깔끔한 코드를 만들 수 있었다.
다른 사람의 풀이 역시 reduce를 사용했는데,
function solution(absolutes, signs) {
return absolutes.reduce((acc, val, i) => acc + (val * (signs[i] ? 1 : -1)), 0);
}
화살표함수이니 return문을 생략해준 것으로 보인다.