Skip to content

Commit 547e881

Browse files
committed
Climbing Stairs solution
1 parent 0cc56e1 commit 547e881

File tree

1 file changed

+41
-0
lines changed

1 file changed

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

0 commit comments

Comments
ย (0)