File tree Expand file tree Collapse file tree 1 file changed +41
-0
lines changed
Expand file tree Collapse file tree 1 file changed +41
-0
lines changed Original file line number Diff line number Diff line change 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๊น์ง๋๊น ํผ๋ณด๋์น ์ ๊ทผ๋ฒ์ด ์ข์ ์ ํ์ธ ๋ฏ
You canโt perform that action at this time.
0 commit comments