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)