Skip to content

Commit 649cbe2

Browse files
committed
feat(2nd): Upload climbing-stairs solution
1 parent 4bfdd6e commit 649cbe2

File tree

1 file changed

+23
-8
lines changed

1 file changed

+23
-8
lines changed

β€Žclimbing-stairs/mike2ox.ts

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,27 @@
1+
/**
2+
* Source: https://leetcode.com/problems/climbing-stairs/description/
3+
* μš”μ : 동적 ν”„λ‘œκ·Έλž˜λ°(DP) 접근법 - ν”Όλ³΄λ‚˜μΉ˜ μˆ˜μ—΄κ³Ό μœ μ‚¬
4+
* 풀이 μ‹œκ°„: 25λΆ„
5+
* μ‹œκ°„λ³΅μž‘λ„: O(n) - λ§ˆμ§€λ§‰ 결과값을 μ–»κΈ°μœ„ν•΄ n번 반볡
6+
* κ³΅κ°„λ³΅μž‘λ„: O(1) - μƒμˆ˜ κ³΅κ°„λ§Œ μ‚¬μš©
7+
*/
18
function climbStairs(n: number): number {
2-
let result = 0;
3-
let step1 = 1;
4-
let step2 = 0;
9+
// μ—£μ§€ μΌ€μ΄μŠ€λ₯Ό 사전에 처리(κ°€μ§€μΉ˜κΈ°)
10+
if (n <= 0) return 0;
11+
if (n === 1) return 1;
512

6-
for (let i = 0; i < n; i++) {
7-
result = step1 + step2;
8-
step2 = step1;
9-
step1 = result;
13+
// ν”Όλ³΄λ‚˜μΉ˜ μˆ˜μ—΄ 계산을 μœ„ν•œ λ³€μˆ˜
14+
let current = 1; // n=1일 λ•Œ λ°©λ²•μ˜ 수 (첫 번째 ν”Όλ³΄λ‚˜μΉ˜ 수)
15+
let prev = 1; // n=0일 λ•Œ λ°©λ²•μ˜ 수 (μ΄ˆκΈ°κ°’)
16+
let temp; // κ΅ν™˜μ„ μœ„ν•œ μž„μ‹œ λ³€μˆ˜
17+
18+
// iλŠ” 2λΆ€ν„° μ‹œμž‘ν•˜μ—¬ nκΉŒμ§€ 반볡
19+
for (let i = 2; i <= n; i++) {
20+
// ν˜„μž¬ 계단에 λ„λ‹¬ν•˜λŠ” λ°©λ²•μ˜ 수 = 이전 두 계단에 λ„λ‹¬ν•˜λŠ” λ°©λ²•μ˜ 수의 ν•©
21+
temp = current;
22+
current = current + prev;
23+
prev = temp;
1024
}
11-
return result;
25+
26+
return current;
1227
}

0 commit comments

Comments
Β (0)