Skip to content

Commit 2a80a5f

Browse files
committed
climbing stairs
1 parent b2d7f7d commit 2a80a5f

File tree

1 file changed

+12
-21
lines changed

1 file changed

+12
-21
lines changed

climbing-stairs/eunhwa99.java

Lines changed: 12 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,16 @@
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번째 계단
98

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;
2213
}
23-
return cntArray[n];
14+
return prev2;
2415
}
2516
}

0 commit comments

Comments
 (0)