File tree Expand file tree Collapse file tree 1 file changed +38
-0
lines changed Expand file tree Collapse file tree 1 file changed +38
-0
lines changed Original file line number Diff line number Diff line change 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+ } ;
You canโt perform that action at this time.
0 commit comments