Algorithm - level1 음양더하기

ryan·2022년 5월 18일
0

프로그래머스 lev1 음양 더하기

내 풀이(100/100)

어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요.

function solution(absolutes, signs) {
  let answer = 0;
  absolutes.forEach((e, i) => {
    if (!signs[i]) {
      e = -e;
    }
    answer += e;
  });
  return answer;
}
  • 문제 난이도가 매우 낮아서, 따로 알고리즘을 고민할 필요없이 바로 작성하여 제출했다.

다른 사람 풀이

function solution(absolutes, signs) {
  return absolutes.reduce(
    (acc, curr, i) => acc + curr * (signs[i] ? 1 : -1),
    0
  );
}
  • true, false를 1,-1이라는 값에 대입하여 현재값에 곱해주고 acc에 더하는 로직이다. 지금까지 알고리즘 풀면서 reduce에 활용에 대해 깊게 고민해본적이 없긴한데 문제에 필요없더라도 활용해보는 쪽으로 고민해보면 익숙해질 것 같다.
profile
프론트엔드 개발자

0개의 댓글