Skip to content

Commit 22b763a

Browse files
committed
solve climbing-stairs
1 parent c5d9bef commit 22b763a

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

climbing-stairs/1lsang.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
// n번째 칸 까지 오르기 위해서는 n-1번째 칸에서 1칸을 오르거나 n-2번째 칸에서 2칸을 오르면 됨.
2+
3+
/*
4+
최초에 생각한 방법은 재귀 구현 But 재귀 구현시에는 O(2^n)으로 시간복잡도가 너무 커서 Time Limit에 걸림.
5+
6+
function climbStairs(n: number): number {
7+
if (n === 1) return 1; // 1칸을 오르는 방법은 1개
8+
if (n === 2) return 2; // 2칸을 오르는 방법은 1+1/2 2개
9+
return climbStairs(n-1) + climbStairs(n-2);
10+
};
11+
*/
12+
13+
function climbStairs(n: number): number {
14+
const arr: number[] = [1, 2];
15+
for (let i = 2; i < n; i++) {
16+
arr.push(arr[i-1] + arr[i-2]);
17+
}
18+
return arr[n-1];
19+
};

0 commit comments

Comments
 (0)