Skip to content

Commit c858905

Browse files
committed
풀이1. Product of Array Except Self #239
1 parent 35696ee commit c858905

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
/**
2+
* 시간복잡도: O(n)
3+
* - 첫번째 for문 O(n)
4+
* - 두번째 for문 O(n)
5+
*
6+
* 공간 복잡도: O(1)
7+
* - 추가 배열 생성 X
8+
*/
9+
const productExceptSelf = (nums) => {
10+
let multiplyResult = 1;
11+
let countZero = 0;
12+
13+
for (let i = 0; i < nums.length; i += 1) {
14+
if (nums[i] === 0) {
15+
countZero += 1;
16+
17+
if (countZero >= 2) {
18+
multiplyResult = 0;
19+
break;
20+
}
21+
22+
continue;
23+
}
24+
multiplyResult *= nums[i];
25+
}
26+
27+
for (let i = 0; i < nums.length; i += 1) {
28+
if (countZero === 1) {
29+
if (nums[i] === 0) {
30+
nums[i] = multiplyResult;
31+
} else {
32+
nums[i] = 0;
33+
}
34+
} else if (countZero >= 2) {
35+
nums[i] = 0;
36+
} else {
37+
nums[i] = multiplyResult / nums[i];
38+
}
39+
}
40+
41+
return nums;
42+
};

0 commit comments

Comments
 (0)