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