Skip to content

Commit 7dc8c64

Browse files
committed
feat: climbing-stairs solution
1 parent b44fbbe commit 7dc8c64

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
/**
2+
* ๊ณ„๋‹จ ์˜ค๋ฅด๊ธฐ
3+
* ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ณต์žก๋„:
4+
* - ์‹œ๊ฐ„๋ณต์žก๋„: O(n) - ์ž…๋ ฅ๊ฐ’ ํฌ๊ธฐ์— ๋น„๋ก€ํ•˜๋Š” ๋‹จ์ผ ๋ฐ˜๋ณต๋ฌธ
5+
* - ๊ณต๊ฐ„๋ณต์žก๋„: O(1) - ์ƒ์ˆ˜ ๊ฐœ์˜ ๋ณ€์ˆ˜๋งŒ ์‚ฌ์šฉ
6+
* @param n
7+
*/
8+
function climbStairs(n: number): number {
9+
// 1 - 2 - 3 - 5 - 8 ... ๊ทœ์น™ ๋ฐœ์ƒ
10+
if(n <= 3) return n
11+
12+
// ์ ‘๊ทผ (1) - ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ ๋„ˆ๋ฌด ํผ
13+
// return climbStairs(n - 1) + climbStairs(n - 2) // ์‹œ๊ฐ„
14+
15+
// ์ ‘๊ทผ (2)
16+
// ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด๊ณผ ๋น„์Šทํ•œ ์•ž์˜ ๋‘ ์ˆซ์ž๋ฅผ ๋”ํ•ด์„œ ๋ฐฐ์—ด ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ฌ
17+
let current = 1; // ํ˜„์žฌ ๋ฐฉ๋ฒ•
18+
let prev = 1; // ์ด์ „ ๋‹จ๊ณ„์˜ ๋ฐฉ๋ฒ•
19+
20+
// n-1๋ฒˆ ๋ฐ˜๋ณตํ•˜์—ฌ ๊ณ„์‚ฐ
21+
for (let i = 1; i < n; i++) {
22+
[current, prev] = [current + prev, current];
23+
}
24+
25+
return current;
26+
}

0 commit comments

Comments
ย (0)