Skip to content

Commit 96a4354

Browse files
committed
climbing stairs solution
1 parent 5fdcc99 commit 96a4354

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

โ€Žclimbing-stairs/smosco.jsโ€Ž

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
/**
2+
* ๋ณต์žก๋„ ๋ถ„์„:
3+
* - ์‹œ๊ฐ„: O(n) - 3๋ถ€ํ„ฐ n๊นŒ์ง€ ํ•œ ๋ฒˆ์”ฉ ์ˆœํšŒ
4+
* - ๊ณต๊ฐ„: O(1) - prev1, prev2 ๋‘ ๋ณ€์ˆ˜๋งŒ ์‚ฌ์šฉ
5+
*/
6+
7+
/**
8+
* @param {number} n
9+
* @return {number}
10+
*/
11+
const climbStairs = (n) => {
12+
// ๊ธฐ๋ณธ ์ผ€์ด์Šค: 1์นธ์ด๋ฉด 1๊ฐ€์ง€, 2์นธ์ด๋ฉด 2๊ฐ€์ง€
13+
if (n <= 2) return n;
14+
15+
/**
16+
* ์•„์ด๋””์–ด:
17+
* n๋ฒˆ์งธ ๊ณ„๋‹จ์— ๋„๋‹ฌํ•˜๋Š” ๋ฐฉ๋ฒ• =
18+
* 1) n-1๋ฒˆ์งธ ๊ณ„๋‹จ์—์„œ 1์นธ ์˜ค๋ฅด๊ธฐ
19+
* 2) n-2๋ฒˆ์งธ ๊ณ„๋‹จ์—์„œ 2์นธ ์˜ค๋ฅด๊ธฐ
20+
*
21+
* ์ฆ‰, f(n) = f(n-1) + f(n-2) ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด๊ณผ ๋™์ผ
22+
*
23+
* ์žฌ๊ท€๋กœ ํ’€๋ฉด ์ค‘๋ณต ๊ณ„์‚ฐ์ด ๋งŽ์•„์„œ ๋น„ํšจ์œจ์ 
24+
* โ†’ ์ด์ „ ๋‘ ๊ฐ’๋งŒ ๊ธฐ์–ตํ•˜๋ฉด์„œ ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ํ•ด๊ฒฐ
25+
*/
26+
27+
let prev2 = 1; // f(1) = 1
28+
let prev1 = 2; // f(2) = 2
29+
30+
// 3๋ถ€ํ„ฐ n๊นŒ์ง€ ์ฐจ๋ก€๋Œ€๋กœ ๊ณ„์‚ฐ
31+
for (let i = 3; i <= n; i++) {
32+
const current = prev1 + prev2; // ํ˜„์žฌ = ์ด์ „ + ์ด์ „์˜ ์ด์ „
33+
prev2 = prev1; // ๊ฐ’๋“ค์„ ํ•œ ์นธ์”ฉ ์•ž์œผ๋กœ ์ด๋™
34+
prev1 = current;
35+
}
36+
37+
return prev1;
38+
};

0 commit comments

Comments
ย (0)