[프로그래머스 level1] 음양 더하기

문제

https://programmers.co.kr/learn/courses/30/lessons/76501


문제 풀이

코드1

function solution(absolutes, signs) {
    let answer=0;

    for(let i=0; i<absolutes.length; i++){
        if(signs[i]) answer+=absolutes[i];
        else answer-=absolutes[i];
    }
    return answer;
}

코드2

배열을 더하는 문제에서는 Array.reduce 메소드를 활용하자! for문을 활용하는 것보다 훨씬 간단하게 끝낼 수 있다.

function solution(absolutes, signs) {
    return absolutes.reduce((acc, v, i) =>acc + (v*(signs[i]? 1 : -1)), 0);
}

오류코드 고치기

오류코드는 다음과 같다.

function solution(absolutes, signs) {
    return absolutes.reduce((acc, v, i) => {
        acc + (v*(signs[i]? 1 : -1));
    }, 0);
}

오류를 해결하면 다음과 같다.

function solution(absolutes, signs) {
    return absolutes.reduce((acc, v, i) => {
        return acc + (v*(signs[i]? 1 : -1));
    }, 0);
}

콜백함수에서 {}를 넣으면, 한줄이라도 반드시 return 해주기!
만약, 한줄이여서 중괄호를 생략한다면, 코드2처럼 return 생략 가능하다.
중괄호의 뜻은 코드가 한줄 이상이라는 뜻이기 때문에, 한줄 이상의 코드 중 무엇을 return해줄지를 지정해줘야한다. 한줄이라도 예외없음!

좋은 웹페이지 즐겨찾기