Skip to content

Commit 4b1490f

Browse files
author
이호찬
committed
product-of-array-except-self solution
1 parent ba678b4 commit 4b1490f

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
2+
// 풀이 1
3+
// /**
4+
// * @param {number[]} nums
5+
// * @return {number[]}
6+
// */
7+
// var productExceptSelf = function(nums) {
8+
// let hasZero = false;
9+
// const allProductNums = nums.reduce((acc, cur) => {
10+
// if (cur === 0) {
11+
// if (!hasZero) {
12+
// hasZero = true;
13+
// return acc;
14+
// }
15+
16+
// return 0;
17+
// }
18+
// return acc * cur;
19+
// }, 1);
20+
21+
// return nums.map(num => {
22+
// if (num === 0) {
23+
// return allProductNums;
24+
// }
25+
26+
// return hasZero ? 0 : allProductNums / num;
27+
// });
28+
// };
29+
30+
//풀이 2
31+
/**
32+
* @param {number[]} nums
33+
* @return {number[]}
34+
*/
35+
var productExceptSelf = function(nums) {
36+
const result = Array(nums.length).fill(1);
37+
38+
let beforeProductNum = 1;
39+
for (let i = 0; i < nums.length; i++) {
40+
result[i] *= beforeProductNum;
41+
beforeProductNum *= nums[i];
42+
}
43+
44+
let afterProductNum = 1;
45+
for (let i = nums.length - 1; i >= 0; i--) {
46+
result[i] *= afterProductNum;
47+
afterProductNum *= nums[i];
48+
}
49+
50+
return result;
51+
};
52+
53+
54+
//두 풀이 모두 시간 복잡도 O(n), 공간 복잡도는 O(n)

0 commit comments

Comments
 (0)