Skip to content

Commit ce3d49d

Browse files
committed
climbing stairs ํ’€์ด
1 parent 1fe7d80 commit ce3d49d

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
/**
2+
* @param {number} n
3+
* @return {number}
4+
*/
5+
var climbStairs = function (n) {
6+
// ๋ฌธ์ œ๋ฅผ ๋ณด์ž๋งˆ์ž ๋“  ์ƒ๊ฐ: dfs์ฒ˜๋Ÿผ ํ•˜๋‚˜์”ฉ,๋‘๊ฐœ์”ฉ ๊ฐ€์ง€๋ป—์–ด๊ฐ€๋ฉด์„œ? -> ์ ํ™”์‹,ํ”ผ๋ณด๋‚˜์น˜์ฒ˜๋Ÿผ ์ตœ์ ํ™”๋œ ํ˜•ํƒœ๊ฒ ๋Š”๋ฐ? ์—ฌ๊ธฐ๊นŒ์ง€๋Š” ์ƒ๊ฐ. ๊ทผ๋ฐ 2์นธ์ „, 1์นธ์ „์˜ ๋ง์…ˆ์ด๋ผ๋Š” ๊ฒฐ๋ก ๊นŒ์ง€ ๋‚ด์ง€๋Š” ๋ชปํ•จ
7+
8+
// ๊ทธ๋ž˜์„œ default๊ฐ’์„ n=1,2,3๊นŒ์ง€ ์„ธํŒ…ํ•ด๋†“๊ณ  ์ƒ๊ฐํ–ˆ์—ˆ๋‹ค. ๋‹ค๋ฅธ์‚ฌ๋žŒ์˜ ์ ํ™”์‹ ํ’€์ด ์ฐธ๊ณ  ํ›„ ์—ญ์ˆœ์œผ๋กœ ์ถœ๋ฐœํ•ด์„œ 2์นธ์ „, 1์นธ์ „์— ๋Œ€ํ•œ ์ƒํ™ฉ์— ์ง‘์ค‘ํ•˜๋Š” ๋ฐฉ์‹ ์ดํ•ด ์™„๋ฃŒ. ๊ตฌํ˜„์€ ๋‚ด๊ฐ€ ์ง์ ‘.
9+
if (n === 1) {
10+
return 1;
11+
}
12+
13+
if (n === 2) {
14+
return 2;
15+
}
16+
17+
return climbStairs(n - 1) + climbStairs(n - 2);
18+
};
19+
20+
// ์‹œ๊ฐ„๋ณต์žก๋„: O(2^n)
21+
// ๊ณต๊ฐ„๋ณต์žก๋„: O(n)
22+
23+
/**
24+
* @param {number} n
25+
* @return {number}
26+
*/
27+
var climbStairs = function (n) {
28+
const dp = Array(n).fill(0);
29+
dp[1] = 1;
30+
dp[2] = 2;
31+
32+
if (n >= 3) {
33+
for (let i = 3; i <= n; i++) {
34+
dp[i] = dp[i - 1] + dp[i - 2];
35+
}
36+
}
37+
38+
return dp[n];
39+
};
40+
41+
// ์‹œ๊ฐ„๋ณต์žก๋„: O(n)
42+
// ๊ณต๊ฐ„๋ณต์žก๋„: O(n) !! dp๋ผ๋Š” ๋ฐฐ์—ด๋Œ€์‹  ๋ณ€์ˆ˜ ๋‘๊ฐœ๋กœ O(1)๋กœ ์ค„์ผ ์ˆ˜ ์žˆ์Œ

0 commit comments

Comments
ย (0)