Skip to content

Commit 8759c3e

Browse files
committed
Climbing Stairs Solution
1 parent 324f5c0 commit 8759c3e

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

β€Žclimbing-stairs/naringst.jsβ€Ž

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
/**
2+
* @param {number} n
3+
* @return {number}
4+
*/
5+
/**
6+
* Note: DP
7+
* κ²°κ΅­ 1개 μ „μ˜ κ°’μ—μ„œ 1칸을 더 κ°€κ±°λ‚˜, 2개 μ „μ˜ κ°’μ—μ„œ 2칸을 더 κ°€λŠ” 경우의 μˆ˜κ°€ 생긴닀.
8+
* 1μΌλ•Œμ—λŠ” 1칸을 κ°€λŠ” λ°©λ²•μ˜ 경우 λΏμ΄μ§€λ§Œ, 2μΌλ•Œμ—λŠ” 0μΉΈ κ°€λŠ” κ²ƒμ—μ„œ 2칸을 κ°€κ±°λ‚˜ 1칸을 κ°€λŠ” κ²ƒμ—μ„œ 1칸을 더 갈 수 μžˆλ‹€.
9+
* 3일 λ•Œμ—λŠ” 1κΉŒμ§€ 갔을 κ²½μš°μ—μ„œ 2칸을 더 κ°€κ±°λ‚˜, 2κΉŒμ§€ 갔을 κ²½μš°μ—μ„œ 1칸을 더 κ°€λ©΄ λ˜λ‹ˆκΉŒ 1κΉŒμ§€ 갔을 경우의 수 + 2κΉŒμ§€ 갔을 경우의 수
10+
*
11+
*
12+
* Runtime: 41ms, Memory: 48.95MB
13+
* Time complexity: O(n)
14+
* Space complexity: O(n)
15+
*
16+
*/
17+
18+
var climbStairs = function (n) {
19+
const dp = Array(n).fill(0);
20+
dp[1] = 1;
21+
dp[2] = 2;
22+
23+
for (let i = 3; i < n + 1; i++) {
24+
dp[i] = dp[i - 2] + dp[i - 1];
25+
}
26+
27+
return dp[n];
28+
};

0 commit comments

Comments
Β (0)