Skip to content

Commit cb3dbc0

Browse files
committed
climbing-stairs solution
1 parent b64fd98 commit cb3dbc0

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

climbing-stairs/Blossssom.ts

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
/**
2+
* 1 or 2 스텝 가능
3+
* @param n - 꼭대기
4+
* @returns - 꼭대기 까지 도달할 수 있는 방법 수
5+
* @description
6+
* - 결국 패턴은 피보나치
7+
* - 시간 복잡도 O(n)
8+
* - 공간 복잡도 O(1)
9+
*/
10+
11+
// function climbStairs(n: number): number {
12+
// if (n <= 2) {
13+
// return n;
14+
// }
15+
16+
// const dp = Array.from({ length: n + 1 }, () => 0);
17+
// dp[1] = 1;
18+
// dp[2] = 2;
19+
20+
// for (let i = 3; i <= n; i++) {
21+
// dp[i] = dp[i - 1] + dp[i - 2];
22+
// }
23+
// return dp[n];
24+
// }
25+
26+
function climbStairs(n: number): number {
27+
if (n <= 2) {
28+
return n;
29+
}
30+
31+
let prevTwo = 1;
32+
let prevOne = 2;
33+
34+
for (let i = 2; i <= n; i++) {
35+
const current = prevTwo + prevOne;
36+
prevTwo = prevOne;
37+
prevOne = current;
38+
}
39+
40+
return prevOne;
41+
}
42+
43+
const n = 3;
44+
climbStairs(n);
45+

0 commit comments

Comments
 (0)