forked from DaleStudy/leetcode-study
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathhaklee.py
More file actions
31 lines (24 loc) Β· 1.33 KB
/
haklee.py
File metadata and controls
31 lines (24 loc) Β· 1.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
"""TC: O(m + n), SC: O(1)
μμ΄λμ΄:
μ€λ₯Έμͺ½μΌλ‘ κ°λ νμ m-1, μλλ‘ κ°λ νμ n-1μ μμ μ μλ λ°©λ²μ μλ₯Ό ꡬνλ©΄ λλ€.
μ¦, m+n-2νμ μ΄λ μ€ m-1κ°λ₯Ό λ½μμ μ€λ₯Έμͺ½μΌλ‘ κ°κ³ , λλ¨Έμ§λ₯Ό μλλ‘ κ°λ©΄ λλ€.
μ¦, (m+n-2)C(m-1)μ κ³μ°νλ©΄ λλ€.
ν° μ μ°μ°μ΄ κ°λ₯ν μΈμ΄λ₯Ό μ¬μ©νλ©΄ nCk = n! / (k! * (n - k)!) κ°μ κ³μ°νλ©΄ λλ€.
νμ΄μ¬μ math.comb ν¨μλ μλμ κ°μ΄ μλνλ€.
(ref: https://docs.python.org/ko/3/library/math.html#math.comb)
- math.comb(n, k)μ κ³μ°νλ©΄ k <= nμ΄λ©΄ n! / (k! * (n - k)!)λ‘ νκ°λκ³ , k > nμ΄λ©΄ 0μΌλ‘ νκ°λ©λλ€.
μ΄ ν¨μλ₯Ό μ¨μ λμ¨ κ²°κ³Όκ°μ κ·Έλλ‘ λ°ννμ.
SC:
- κ³±μ
, λλμ
μ°μ° κ²°κ³Ό κ° κ΄λ¦¬. O(1).
- μμ£Ό ν° μ«μλ₯Ό λ€λ£° κ²½μ° μ΄λ κ² λ³΄λ©΄ μ λ μλ μμ§λ§, λ¬Έμ 쑰건μ 보μνλ int64 λ²μ λ΄μμ
κ³±μ
κ³Ό λλμ
μ°μ° κ°λ€μ΄ λͺ¨λ μ²λ¦¬λλ κ²μΌλ‘ 보μΈλ€. μ¦, SCκ° κ·Έλ¦¬ μ€μνμ§λ μλ€.
TC:
- (m+n-2)C(m-1) = (m+n-2)! / (m-1)! * (n-1)!
- κ° κ³±μ
κ°μ ꡬνλ λ°μ O(m + n), O(m), O(n). μ
λ€ λνλ©΄ O(m + n).
- λλμ
μ O(1).
- μ’
ν©νλ©΄ O(m + n)
"""
from math import comb
class Solution:
def uniquePaths(self, m: int, n: int) -> int:
return comb(m + n - 2, n - 1)