📚

Array Product

Array Product - Explanation

쉬움 배열 O(n) O(1)

Problem Summary

Write a function that returns the product of all numbers in an array.

Go to Problem →

Detailed Explanation

이 문제는 **reduce 메서드**를 사용하여 배열의 모든 요소를 곱하는 방법을 학습합니다. ## 핵심 개념: reduce로 곱셈 누적 `reduce`는 배열을 하나의 값으로 축소할 때 사용합니다. 합계뿐 아니라 곱셈에도 활용할 수 있습니다. ### 접근 방법 1. 빈 배열 체크 - 빈 배열이면 0 반환 2. reduce로 모든 요소 곱하기 - 초기값 1 사용 ### 초기값이 중요한 이유 - 합계: 초기값 0 (0 + a + b + c...) - 곱셈: 초기값 1 (1 * a * b * c...) - 곱셈에서 0을 초기값으로 하면 항상 0이 됩니다! ### 코드 분석 ```javascript arr.reduce((acc, cur) => acc * cur, 1) ``` - acc: 누적값 (이전 곱셈 결과) - cur: 현재 요소 - 1: 초기값 (곱셈의 항등원) 곱셈의 특성상 배열에 0이 포함되면 결과는 항상 0이 됩니다. 이런 특수 케이스도 고려해야 합니다.

Solution Code

solution.js
function product(arr) {
  if (arr.length === 0) return 0;
  return arr.reduce((acc, cur) => acc * cur, 1);
}

Key Concepts from This Problem

1. reduce 메서드
2. 곱셈 누적
3. 초기값의 중요성
4. 빈 배열 처리

Common Mistakes

초기값을 0으로 설정하면 결과가 항상 0이 됩니다
빈 배열 처리를 빼먹으면 초기값 1이 반환되어 의미가 맞지 않을 수 있습니다
reduce 없이 for문을 사용하면 코드가 길어집니다

Hints

Hint 1: reduce를 사용하고, 초기값은 1로 설정하세요.

Complexity Analysis

Time Complexity

O(n)

Grows linearly with input size

Space Complexity

O(1)

Uses almost no additional memory

Related Tags

#배열 #reduce #수학