Skip to content

Commit 5db9e87

Browse files
committed
add solution: product-of-array-except-self
1 parent b890755 commit 5db9e87

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
'''
2+
๋ฌธ์ œ: ํ•ด๋‹น ์ธ๋ฑ์Šค๋ฅผ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ์ธ๋ฑ์Šค์˜ ๊ณฑ์„ ๊ตฌํ•˜๋ผ
3+
ํ’€์ด: 0์˜ ๊ฐœ์ˆ˜์— ๋”ฐ๋ผ ๊ฒฝ์šฐ๋ฅผ ๋‚˜๋ˆ ์„œ ํ’€์ด
4+
1. 0์ด 2๊ฐœ ์ด์ƒ์ธ ๊ฒฝ์šฐ: ๋ชจ๋“  ์ธ๋ฑ์Šค์˜ ๊ณฑ์ด 0์ด๋ฏ€๋กœ, [0, 0, ..., 0] ๋ฐ˜ํ™˜
5+
2. 0์ด 1๊ฐœ์ธ ๊ฒฝ์šฐ: 0์ด ์žˆ๋Š” ์ธ๋ฑ์Šค์—๋Š” ๋‚˜๋จธ์ง€ ์ธ๋ฑ์Šค์˜ ๊ณฑ์„, ๋‚˜๋จธ์ง€ ์ธ๋ฑ์Šค์—๋Š” 0์„ ๋ฐ˜ํ™˜
6+
3. 0์ด ์—†๋Š” ๊ฒฝ์šฐ: ์ „์ฒด ๊ณฑ์„ ๊ฐ ์ธ๋ฑ์Šค์˜ ๊ฐ’์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋ฐ˜ํ™˜
7+
์‹œ๊ฐ„๋ณต์žก๋„: O(n)
8+
nums ๋ฐฐ์—ด์„ ํ•œ ๋ฒˆ์”ฉ ์ˆœํšŒํ•˜๋ฉฐ ๊ณฑ์„ ๊ณ„์‚ฐํ•˜๊ณ , ๋‹ค์‹œ ํ•œ ๋ฒˆ์”ฉ ์ˆœํšŒํ•˜๋ฉฐ ๊ฒฐ๊ณผ๋ฅผ ๊ณ„์‚ฐํ•˜๋ฏ€๋กœ ์ „์ฒด ์‹œ๊ฐ„๋ณต์žก๋„๋Š” O(n)์ด๋‹ค.
9+
๊ณต๊ฐ„๋ณต์žก๋„: O(n)
10+
๊ฐ™์€ ํฌ๊ธฐ์˜ ๊ฒฐ๊ณผ ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•˜๋ฏ€๋กœ ์ „์ฒด ๊ณต๊ฐ„๋ณต์žก๋„๋Š” O(n)์ด๋‹ค.
11+
์‚ฌ์šฉํ•œ ์ž๋ฃŒ๊ตฌ์กฐ: ๋”•์…”๋„ˆ๋ฆฌ, ๋ฆฌ์ŠคํŠธ
12+
'''
13+
14+
class Solution:
15+
def productExceptSelf(self, nums: List[int]) -> List[int]:
16+
d = {}
17+
now = 1
18+
answer = []
19+
for i in nums:
20+
if i in d:
21+
d[i] += 1
22+
else:
23+
d[i] = 1
24+
if i != 0:
25+
now *= i
26+
27+
if 0 in d and d[0] > 1:
28+
return [0 for i in range(len(nums))]
29+
30+
if 0 in d and d[0] == 1:
31+
for i in nums:
32+
if i == 0:
33+
answer.append(now)
34+
else:
35+
answer.append(0)
36+
return answer
37+
38+
for i in nums:
39+
answer.append(now//i)
40+
return answer

0 commit comments

Comments
ย (0)