File tree Expand file tree Collapse file tree 1 file changed +12
-21
lines changed Expand file tree Collapse file tree 1 file changed +12
-21
lines changed Original file line number Diff line number Diff line change 1
- /**
2
- * 문제 풀이
3
- */
4
- // n=2 (1,1), (2) -> 2 가지
5
- // n=3 (n=2, 1), (n=1, 2) -> 2 + 1 = 3가지
6
- // n=4 (n=3, 1), (n=2, 2) -> 3 + 2 = 5가지
7
- // n=5 (n=4, 1) , (n=3, 2)
8
- // n=k (n=k-1, 1), (n=k-2, 2)
1
+ // 시간 복잡도 O(n) - n은 계단의 개수
2
+ // 공간 복잡도 O(1) - 상수 공간 사용
3
+ class Solution {
4
+ public int climbStairs (int n ){
5
+ // 피보나치
6
+ int prev1 = 1 ; // 0번째 계단
7
+ int prev2 = 1 ; // 1번째 계단
9
8
10
- /**
11
- * 시간/공간 복잡도
12
- */
13
- // 시간 복잡도: 각 칸을 한 번씩 방문 -> O(n)
14
- // 공간 복잡도: DP 배열 크기 -> O(n)
15
- class Solution {
16
- public int climbStairs (int n ) {
17
- int [] cntArray = new int [n + 1 ];
18
- cntArray [0 ] = 1 ;
19
- cntArray [1 ] = 1 ;
20
- for (int i = 2 ; i <= n ; ++i ) {
21
- cntArray [i ] = cntArray [i - 1 ] + cntArray [i - 2 ];
9
+ for (int i =2 ; i <=n ; i ++){
10
+ int current = prev1 + prev2 ;
11
+ prev1 = prev2 ;
12
+ prev2 = current ;
22
13
}
23
- return cntArray [ n ] ;
14
+ return prev2 ;
24
15
}
25
16
}
You can’t perform that action at this time.
0 commit comments