개발 공부/Algorithm
[프로그래머스/Javascript] 음양 더하기
whenever purple
2022. 3. 11. 16:15
문제
어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요.
사용한 함수
중첩 if문 : absolutes의 리스트 순서와 signs의 순서를 같게 하기위해 사용하였다.
해결
function solution(absolutes, signs) {
var answer = 0;
len = absolutes.length
for (let i=0; i<len; i++)
if (absolutes[i]) {
if (signs[i] == true) {
answer += absolutes[i]
}else{
answer -= absolutes[i]
}
}
return answer;
}
해결 (다른사람의 풀이 참고)
function solution(absolutes, signs) {
return absolutes.reduce((acc, val, i) => acc + (val * (signs[i] ? 1 : -1)), 0);
}
사용한 함수: reduce()
해결(다른사람의 풀이 참고)
function solution(absolutes, signs) {
let answer = 0;
absolutes.forEach((v, i) => {
if (signs[i]) {
answer += v;
} else {
answer -= v;
}
})
return answer;
}
사용한 함수: forEach()
해결(다른사람의 풀이 참고)
function solution(absolutes, signs) {
let answer = 0;
for (let i = 0; i < absolutes.length; i++) {
signs[i] ? answer += absolutes[i] : answer -= absolutes[i]
}
return answer;
}
처음 보는 표현방식이라 가져왔다.