Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript로 배열 요소의 합과 곱의 차이 구하는 방법

숫자 배열을 인수로 받아, 배열에 포함된 모든 숫자의 합(sum)곱(product)을 각각 계산한 뒤, 두 값의 절대적인 차이를 반환하는 JavaScript 함수를 작성해야 합니다.

문제 접근 방식

이 문제는 배열의 reduce() 메서드를 활용하면 깔끔하게 해결할 수 있습니다. 반복 과정에서 누적 객체에 sumproduct 두 값을 함께 유지하면서 각 요소를 처리합니다.

  • sum의 초기값은 0으로 설정합니다. 덧셈의 항등원이기 때문입니다.
  • product의 초기값은 1로 설정합니다. 곱셈의 항등원이기 때문입니다.

모든 요소를 순회한 후에는 Math.abs()를 사용해 합과 곱의 차이를 절댓값으로 반환합니다.

예제 코드

다음은 전체 구현 코드입니다.

const arr = [1, 4, 1, 2, 1, 6, 3];

const sumProductDifference = (arr = []) => {
  const creds = arr.reduce((acc, val) => {
    let { sum, product } = acc;
    sum += val;
    product *= val;
    return { sum, product };
  }, {
    sum: 0,
    product: 1
  });
  const { sum, product } = creds;
  return Math.abs(sum - product);
};

console.log(sumProductDifference(arr));

실행 결과

콘솔에 출력되는 결과는 다음과 같습니다.

126

결과 검증

배열 [1, 4, 1, 2, 1, 6, 3]을 기준으로 직접 계산해 보면:

  • 합계: 1 + 4 + 1 + 2 + 1 + 6 + 3 = 18
  • 곱: 1 × 4 × 1 × 2 × 1 × 6 × 3 = 144

따라서 절대 차이는 |18 − 144| = 126이 되어, 코드의 출력 결과와 일치함을 확인할 수 있습니다.