Skip to content

Commit 8ca22c5

Browse files
committed
feat: week2 - product of array except self
1 parent c3a296d commit 8ca22c5

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
'''
2+
Approach
3+
- ๋ฐฐ์—ด์— 0์ด 2๊ฐœ ์ด์ƒ ์žˆ๋Š” ๊ฒฝ์šฐ, ๋ชจ๋“  ์›์†Œ๋Š” 0์ด ๋˜๋ฏ€๋กœ ๋ฐ”๋กœ ๋‹ต์„ ๋ฐ˜ํ™˜
4+
- "self(์ „์ฒด ๊ณฑ์—์„œ ์ œ์™ธ๋  ๊ฐ’)"์˜ ์ธ๋ฑ์Šค๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์™ผ์ชฝ(before)๊ณผ ์˜ค๋ฅธ์ชฝ(after)๊ณฑ์„ ๋ฏธ๋ฆฌ ๊ณ„์‚ฐํ•ด์„œ ๋ฐฐ์—ด์— ์ €์žฅ
5+
- ์ตœ์ข…์ ์œผ๋กœ before์™€ after ๋ฐฐ์—ด์˜ ๊ฐ™์€ ์ธ๋ฑ์Šค ๊ฐ’์„ ๊ณฑํ•ด์„œ ๋ฐ˜ํ™˜
6+
7+
Time Complexity: O(N)
8+
- after, before ๋ฐฐ์—ด์„ ๊ฐ๊ฐ ํ•œ ๋ฒˆ์”ฉ ์ˆœํšŒํ•˜๋ฉฐ ๊ณ„์‚ฐ
9+
- ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ• ๋•Œ ๋‘ ๋ฐฐ์—ด์„ ๊ณฑ์„ ๊ณ„์‚ฐ
10+
Space Complexity: O(N)
11+
- N์€ num์˜ ๊ธธ์ด์ด๋ฉฐ Nํฌ๊ธฐ์— ๋น„๋ก€ํ•˜๋Š” before, after ๋ฐฐ์—ด ์ƒ์„ฑ ๊ณต๊ฐ„
12+
'''
13+
from typing import List
14+
15+
class Solution:
16+
def productExceptSelf(self, nums: List[int]) -> List[int]:
17+
if nums.count(0) > 1:
18+
return [0] * len(nums)
19+
20+
before = [1] * len(nums)
21+
for idx in range(len(nums)-1):
22+
before[idx+1] = before[idx] * nums[idx]
23+
24+
after = [1] * len(nums)
25+
for jdx in range(len(nums)-1, 0, -1):
26+
after[jdx-1] = after[jdx] * nums[jdx]
27+
28+
return [x * y for x, y in zip(before, after)]

0 commit comments

Comments
ย (0)