File tree Expand file tree Collapse file tree 1 file changed +23
-8
lines changed Expand file tree Collapse file tree 1 file changed +23
-8
lines changed Original file line number Diff line number Diff line change
1
+ /**
2
+ * Source: https://leetcode.com/problems/climbing-stairs/description/
3
+ * ์์ : ๋์ ํ๋ก๊ทธ๋๋ฐ(DP) ์ ๊ทผ๋ฒ - ํผ๋ณด๋์น ์์ด๊ณผ ์ ์ฌ
4
+ * ํ์ด ์๊ฐ: 25๋ถ
5
+ * ์๊ฐ๋ณต์ก๋: O(n) - ๋ง์ง๋ง ๊ฒฐ๊ณผ๊ฐ์ ์ป๊ธฐ์ํด n๋ฒ ๋ฐ๋ณต
6
+ * ๊ณต๊ฐ๋ณต์ก๋: O(1) - ์์ ๊ณต๊ฐ๋ง ์ฌ์ฉ
7
+ */
1
8
function climbStairs ( n : number ) : number {
2
- let result = 0 ;
3
- let step1 = 1 ;
4
- let step2 = 0 ;
9
+ // ์ฃ์ง ์ผ์ด์ค๋ฅผ ์ฌ์ ์ ์ฒ๋ฆฌ(๊ฐ์ง์น๊ธฐ)
10
+ if ( n <= 0 ) return 0 ;
11
+ if ( n === 1 ) return 1 ;
5
12
6
- for ( let i = 0 ; i < n ; i ++ ) {
7
- result = step1 + step2 ;
8
- step2 = step1 ;
9
- step1 = result ;
13
+ // ํผ๋ณด๋์น ์์ด ๊ณ์ฐ์ ์ํ ๋ณ์
14
+ let current = 1 ; // n=1์ผ ๋ ๋ฐฉ๋ฒ์ ์ (์ฒซ ๋ฒ์งธ ํผ๋ณด๋์น ์)
15
+ let prev = 1 ; // n=0์ผ ๋ ๋ฐฉ๋ฒ์ ์ (์ด๊ธฐ๊ฐ)
16
+ let temp ; // ๊ตํ์ ์ํ ์์ ๋ณ์
17
+
18
+ // i๋ 2๋ถํฐ ์์ํ์ฌ n๊น์ง ๋ฐ๋ณต
19
+ for ( let i = 2 ; i <= n ; i ++ ) {
20
+ // ํ์ฌ ๊ณ๋จ์ ๋๋ฌํ๋ ๋ฐฉ๋ฒ์ ์ = ์ด์ ๋ ๊ณ๋จ์ ๋๋ฌํ๋ ๋ฐฉ๋ฒ์ ์์ ํฉ
21
+ temp = current ;
22
+ current = current + prev ;
23
+ prev = temp ;
10
24
}
11
- return result ;
25
+
26
+ return current ;
12
27
}
You canโt perform that action at this time.
0 commit comments