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