62 성공
This commit is contained in:
22
repetition/dp/62.py
Normal file
22
repetition/dp/62.py
Normal file
@@ -0,0 +1,22 @@
|
||||
# Unique Paths
|
||||
|
||||
class Solution:
|
||||
def uniquePaths(self, m: int, n: int) -> int:
|
||||
dp = [[1]*n for _ in range(m)]
|
||||
|
||||
for i in range(1, m):
|
||||
for j in range(1, n):
|
||||
dp[i][j] = dp[i][j-1] + dp[i-1][j]
|
||||
|
||||
return dp[m-1][n-1]
|
||||
|
||||
"""
|
||||
걸린 시간: 10분
|
||||
|
||||
복잡도: 격자판의 모든 칸을 한번씩 갱신하기 때문에 시간복잡도와 공간복잡도 둘 다 O(nm)이다.
|
||||
|
||||
해설: 목적지는 오른쪽 아래 끝이고, 움직이는 방법도 오른쪽으로 가거나 왼쪽으로 가거나 두 가지 방법밖에 없다.
|
||||
따라서 첫번째 행부터 쭉 채워나가는 방식으로 진행하면 이미 갱신한 칸으로 다시 돌아올 이동 방법이 없기 때문에 그것이 그 칸에 가는
|
||||
최종 경우의 수가 된다.
|
||||
갱신하는 방법은 현재 보는 칸으로 올 수 있는 이전 칸의 경우의 수를 더하는 것인데, 윗칸과 왼쪽 칸의 경우의 수를 더하면 된다.
|
||||
"""
|
||||
Reference in New Issue
Block a user