Skip to content

Commit 240f8f1

Browse files
committed
solve(w07): 62. Unique Paths (modified)
1 parent b0c09b9 commit 240f8f1

File tree

1 file changed

+8
-12
lines changed

1 file changed

+8
-12
lines changed

unique-paths/seungriyou.py

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,10 @@ def uniquePaths_2d(self, m: int, n: int) -> int:
1414
= dp[r - 1][c] + dp[r][c - 1]
1515
이때, dp table의 첫 번째 row와 column에 있는 칸들은 모두 도달할 수 있는 unique path의 개수가 1이므로 초기화해준다.
1616
"""
17-
dp = [[0 for _ in range(n)] for _ in range(m)]
18-
19-
# 첫 번째 row & column 초기화
20-
for r in range(m):
21-
dp[r][0] = 1
22-
for c in range(n):
23-
dp[0][c] = 1
17+
# 첫 번째 row & column은 1로 초기화
18+
dp = [[1 for _ in range(n)] for _ in range(m)]
2419

20+
# 두 번째 row & column 부터 순회
2521
for r in range(1, m):
2622
for c in range(1, n):
2723
dp[r][c] = dp[r - 1][c] + dp[r][c - 1]
@@ -39,15 +35,15 @@ def uniquePaths(self, m: int, n: int) -> int:
3935
rolling array 기법을 이용해 1D DP로 space optimization이 가능하다.
4036
따라서 길이가 n인 1D dp list를 이용해
4137
- c(= 1 ~ n - 1)를 순회하며 dp[c] += dp[c - 1]로 업데이트하는 것을 (2D DP에서의 dp[r - 1][c]가 dp[c] 값이므로!)
42-
- row 개수인 m 번 반복
38+
- row 개수인 m 번 반복 (단, 첫 번째 row를 1로 초기화 한 효과를 얻기 위해 dp를 1로 초기화 하고 m - 1번 반복)
4339
하면 된다.
4440
"""
4541

46-
dp = [0] * n
47-
dp[0] = 1
42+
# 첫 번째 row는 1로 초기화 한 효과
43+
dp = [1] * n
4844

49-
for _ in range(m):
50-
for c in range(1, n):
45+
for _ in range(1, m): # m - 1 번 반복
46+
for c in range(1, n): # 첫 번째 col은 1로 초기화 한 효과
5147
dp[c] += dp[c - 1]
5248

5349
return dp[n - 1]

0 commit comments

Comments
 (0)