Skip to content

Commit c9460e4

Browse files
committed
solve(w02): 70. Climbing Stairs
1 parent 9d87e63 commit c9460e4

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

climbing-stairs/seungriyou.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# https://leetcode.com/problems/climbing-stairs/
2+
3+
class Solution:
4+
def climbStairs(self, n: int) -> int:
5+
"""
6+
[Complexity]
7+
- TC: O(n)
8+
- SC: O(1)
9+
10+
[Approach]
11+
dp[i] = i-th step을 오를 때, 가능한 distinct ways의 수
12+
= dp[i - 1] + dp[i - 2]
13+
이때, dp[i - 1]과 dp[i - 2]만 필요하므로, O(1) space로 optimize 가능하다.
14+
prev1 = dp[i - 1]
15+
prev2 = dp[i - 2]
16+
첫 번째 계단을 오르는 방법에는 1개가 있으므로, 초깃값은 다음과 같이 설정할 수 있다.
17+
prev1 = 1
18+
prev2 = 0
19+
"""
20+
21+
prev1, prev2 = 1, 0
22+
for _ in range(n):
23+
prev1, prev2 = prev1 + prev2, prev1
24+
return prev1

0 commit comments

Comments
 (0)