File tree Expand file tree Collapse file tree 1 file changed +38
-0
lines changed
product-of-array-except-self Expand file tree Collapse file tree 1 file changed +38
-0
lines changed Original file line number Diff line number Diff line change
1
+ /**
2
+ * ์ฃผ์ด์ง ๋ฐฐ์ด์์ ์์ ์ ์ธ๋ฑ์ค๋ฅผ ์ ์ธํ ๋๋จธ์ง ์์๋ค์ ๊ณฑ์ ๊ณ์ฐํ๋ ํจ์
3
+ *
4
+ * @param {number[] } nums - ์ ์ ๋ฐฐ์ด
5
+ * @returns {number[] } - ๊ฐ ์ธ๋ฑ์ค์ ์์๋ฅผ ์ ์ธํ ๋๋จธ์ง ์์๋ค์ ๊ณฑ์ ๊ตฌํ ๋ฐฐ์ด
6
+ *
7
+ * 1. ๊ฒฐ๊ณผ ๋ฐฐ์ด `result`๋ฅผ 1๋ก ์ด๊ธฐํ.
8
+ * 2. ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ์ผ๋ก ์ํํ๋ฉฐ `left` ๊ฐ์ ์ด์ฉํด ๊ธฐ์ค idx ์ด์ ์ ๊ฐ์ ๊ณ์ฐํ์ฌ `result`์ ์ ์ฅ.
9
+ * 3. ์ค๋ฅธ์ชฝ์์ ์ผ์ชฝ์ผ๋ก ์ํํ๋ฉฐ `right` ๊ฐ์ ์ด์ฉํด ์ ๋ฏธ ๊ธฐ์ค idx ์ดํ์ ๊ฐ๋ค์ ๊ณ์ฐ ํ์ผ `result`์ ๊ณฑํจ.
10
+ * 4. ๊ฒฐ๊ณผ ๋ฐฐ์ด `result`๋ฅผ ๋ฐํ.
11
+ *
12
+ * ์๊ฐ ๋ณต์ก๋:
13
+ * - ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ ์ํ: O(n)
14
+ * - ์ค๋ฅธ์ชฝ์์ ์ผ์ชฝ ์ํ: O(n)
15
+ * - ์ ์ฒด ์๊ฐ ๋ณต์ก๋: O(n)
16
+ *
17
+ * ๊ณต๊ฐ ๋ณต์ก๋:
18
+ * - ์ถ๊ฐ ๋ฐฐ์ด ์์ด ์์ ๊ณต๊ฐ ์ฌ์ฉ (result๋ ๋ฌธ์ ์ ์๊ตฌ ์กฐ๊ฑด์ ํฌํจ๋์ง ์์).
19
+ * - ์ ์ฒด ๊ณต๊ฐ ๋ณต์ก๋: O(1)
20
+ */
21
+ function productExceptSelf ( nums : number [ ] ) : number [ ] {
22
+ const numLength = nums . length ;
23
+ const result = new Array ( numLength ) . fill ( 1 ) ;
24
+
25
+ let left = 1 ;
26
+ for ( let i = 0 ; i < numLength ; i ++ ) {
27
+ result [ i ] *= left ;
28
+ left *= nums [ i ] ;
29
+ }
30
+
31
+ let right = 1 ;
32
+ for ( let i = numLength ; i >= 0 ; i -- ) {
33
+ result [ i ] *= right ;
34
+ right *= nums [ i ] ;
35
+ }
36
+
37
+ return result ;
38
+ }
You canโt perform that action at this time.
0 commit comments