Skip to content

Commit 4e9b853

Browse files
committed
add: solve #230 Climbing Stairs with ts
1 parent b2c99a1 commit 4e9b853

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

β€Žclimbing-stairs/Yjason-K.tsβ€Ž

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
/**
2+
* @description
3+
* 동적 ν”„λ‘œκ·Έλž˜λ°(Dynamic Programming, DP)을 μ‚¬μš©ν•˜μ—¬ 계단을 였λ₯΄λŠ” 방법 수λ₯Ό κ³„μ‚°ν•©λ‹ˆλ‹€.
4+
* - 점화식: dp[i] = dp[i-1] + dp[i-2]
5+
* - dp[i-1]: 이전 κ³„λ‹¨μ—μ„œ 1단계 올라온 경우
6+
* - dp[i-2]: 두 계단 μ•„λž˜μ—μ„œ 2단계 올라온 경우
7+
* - 곡간 μ΅œμ ν™”λ₯Ό 톡해 λ°°μ—΄ λŒ€μ‹  두 λ³€μˆ˜(prev1, prev2)λ₯Ό μ‚¬μš©ν•˜μ—¬ λ©”λͺ¨λ¦¬ μ‚¬μš©λŸ‰μ„ μ€„μž…λ‹ˆλ‹€.
8+
* @param {number}n step 수
9+
* @returns {number} 계단 도달 방법 수
10+
*/
11+
function climbStairs(n: number): number {
12+
if (n <=2) return n;
13+
14+
let prev2 = 1; // dp[i-2]
15+
let prev1 = 2; // dp[i-1]
16+
17+
for (let i = 3; i <= n; i++) {
18+
const cur = prev1 + prev2; // dp[i] 계산
19+
prev2 = prev1; // dp[i-2] κ°±μ‹ 
20+
prev1 = cur; // dp[i-1] κ°±μ‹ 
21+
}
22+
23+
return prev1; // dp[n] λ°˜ν™˜
24+
};
25+

0 commit comments

Comments
Β (0)