Skip to content

Commit 8618ef3

Browse files
committed
solved : climbing-stairs
1 parent bfe7963 commit 8618ef3

File tree

1 file changed

+68
-0
lines changed

1 file changed

+68
-0
lines changed

climbing-stairs/ayleeee.py

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
# takes n steps to reach the top
2+
# 1 or 2 steps at a time
3+
4+
'''
5+
n = 1
6+
answer = 1
7+
8+
n = 2
9+
answer = 2
10+
1 step + 1 step
11+
2 step
12+
13+
n = 3
14+
answer = 3
15+
1 step + 1 step + 1 step
16+
1 step + 2 step
17+
2 step + 1 step
18+
19+
n=4
20+
answer = 5
21+
1 step + 1 step + 1 step + 1 step
22+
1 step + 1 step + 2 step
23+
1 step + 2 step + 1 step
24+
2 step + 1 step + 1 step
25+
2 step + 2 step
26+
27+
n=5
28+
answer = 8
29+
1 + 1 + 1 + 1 + 1
30+
1 + 1 + 1 + 2
31+
1 + 1 + 2 + 1
32+
1 + 2 + 1 + 1
33+
1 + 2 + 2
34+
2 + 1 + 1 + 1
35+
2 + 1 + 2
36+
2 + 2 + 1
37+
38+
1 2 3 5 8 ? ?
39+
'''
40+
41+
# 시간 복잡도 O(n)
42+
# 공간 복잡도 O(n)
43+
def climbStairs(self, n: int) -> int:
44+
dp = [0] * (n + 1)
45+
if n == 1:
46+
return 1
47+
elif n == 2:
48+
return 2
49+
dp[1] = 1
50+
dp[2] = 2
51+
for i in range(3, n + 1):
52+
dp[i] = dp[i - 1] + dp[i - 2]
53+
return dp[n]
54+
55+
'''def climbStairs(self, n: int) -> int:
56+
if n == 1:
57+
return 1
58+
prev1, prev2 = 1, 2
59+
for i in range(3, n + 1):
60+
current = prev1 + prev2
61+
prev1 = prev2
62+
prev2 = current
63+
return prev2
64+
시간 복잡도 : O(n) -> 루프가 있기에
65+
공간 복잡도 : O(1) -> 추가 배열 없이 상수 공간만 사용
66+
67+
'''
68+

0 commit comments

Comments
 (0)