Skip to content

Commit d5e20a0

Browse files
committed
add climbStairs solution
1 parent a8ebb3b commit d5e20a0

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

climbing-stairs/HoonDongKang.ts

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
/**
2+
* [Problem]: [70] Climbing Stairs
3+
* (https://leetcode.com/problems/climbing-stairs/description/)
4+
*/
5+
6+
function climbStairs(n: number): number {
7+
// 시간복잡도 O(n)
8+
// 공간복잡도 O(n)
9+
function dpFunc(n: number): number {
10+
if (n <= 0) return 0;
11+
12+
let dpArr: number[] = new Array(n);
13+
dpArr[0] = 1;
14+
dpArr[1] = 2;
15+
16+
for (let i = 2; i < n; i++) {
17+
dpArr[i] = dpArr[i - 1] + dpArr[i - 2];
18+
}
19+
20+
return dpArr[n - 1];
21+
}
22+
23+
// 시간복잡도 O(n)
24+
// 공간복잡도 O(1)
25+
function dpOptimizedFunc(n: number): number {
26+
if (n <= 0) return 0;
27+
if (n === 1) return 1;
28+
if (n === 2) return 2;
29+
30+
let prev1 = 1;
31+
let prev2 = 2;
32+
33+
for (let i = 3; i < n + 1; i++) {
34+
let currentValue = prev1 + prev2;
35+
36+
prev1 = prev2;
37+
prev2 = currentValue;
38+
}
39+
40+
return prev2;
41+
}
42+
43+
return dpOptimizedFunc(n);
44+
}

0 commit comments

Comments
 (0)