1+ class Solution :
2+ def productExceptSelf (self , nums : list [int ]) -> list [int ]:
3+ """
4+ numsμ κ° μμμ λν΄μ, κ·Έ μμλ₯Ό μ μΈν λλ¨Έμ§ μμλ€μ κ³±μ ꡬνλ ν¨μ
5+ μκ°μ μ½μ O(n)μ΄κ³ , λλμ
μ μ¬μ©νμ§ μμμΌ ν¨
6+
7+ λ°©λ²:
8+ 1. brute-force. κ° μμλ§λ€, λλ¨Έμ§ μμλ€μ κ³±μ ꡬνκΈ°. O(n)μ μκ° μ μ½μ λ§μ‘±νμ§ λͺ»ν¨
9+ 2. μ 체 κ³±μ ꡬν΄λκ³ , κ° μμλ§λ€ μκΈ° μμ μ κ°μΌλ‘ λλκΈ°. λλμ
μ μ½μ κ±Έλ € μ¬μ© λΆκ°
10+ 3. 루νμμ μμ μ μμλ₯Ό λΉΌκ³ μμ κ°λ€μ κ³±κ³Ό λ€μ κ³±λ€μ κ°μ ꡬνκΈ°.
11+ - μμμλΆν° κ³±μ ꡬν΄λκ°λ©΄μ, λ°°μ΄μ μ μ₯νκΈ°. μ΄κΈ° κ°μ 1λ‘ μ€μ
12+ - λ€μμλΆν° κ³±μ ꡬν΄λκ°λ©΄μ, λ°°μ΄μ μ μ₯νκΈ°. μ΄κΈ° κ°μ 1λ‘ μ€μ
13+ - ν μμΉ κΈ°μ€ μμ κ³±κ³Ό λ€μ κ³±μ κ³±ν΄μ μ΅μ’
λ΅μ ꡬνκΈ°
14+ -> μμ κ³±κ³Ό λ€μ κ³±μ λͺ©λ‘μ μ μ§νλ κ³΅κ° λ³΅μ‘λκ° O(n), λ ν¨μ¨ν ν μ μμκΉ?
15+ 4. λ³λμ λ°°μ΄μ λ§λ€μ§ μκ³ , μμμλΆν° κ³±νλ©° λ°°μ΄μ μ μ₯ν ν, λ€μμλΆν° λ€μ κ³±νλ©° λμΌ λ°°μ΄μ μ
λ°μ΄νΈ.
16+ -> μκ°λ³΅μ‘λ O(n), 곡κ°λ³΅μ‘λ O(1) (λ΅ λ°°μ΄ μ μΈ)
17+
18+ Args:
19+ nums (list[int]): μ μ λͺ©λ‘
20+
21+ Returns:
22+ list[int]: κ° μμμ λν΄μ, κ·Έ μμλ₯Ό μ μΈν λλ¨Έμ§ μμλ€μ κ³±μ λ΄μ λͺ©λ‘
23+ """
24+ answer = [1 ] * len (nums )
25+ nxt = 1
26+ for idx , num in enumerate (nums ):
27+ answer [idx ] = nxt
28+ nxt *= num
29+ nxt = 1
30+ for idx in range (len (nums )- 1 , - 1 , - 1 ):
31+ answer [idx ] *= nxt
32+ nxt *= nums [idx ]
33+ return answer
0 commit comments