📚
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 #수학