코린이의 소소한 공부노트

[LeetCode/Easy] 70. Climbing Stairs 본문

코딩테스트 풀이/JAVA

[LeetCode/Easy] 70. Climbing Stairs

무지맘 2023. 5. 9. 15:48

1. Input

1) int n

 

2. Output

1) 한 번에 1계단 또는 2계단씩 올라갈 경우, n계단을 올라갈 수 있는 모든 방법의 수를 반환

 

3. Constraint

1) 1 <= n <= 45

 

4. Example

Input: n = 3 -> Output: 3

설명: 올라가는 방법은 다음과 같다.

- 1 + 1 + 1

- 1 + 2

- 2 + 1

 

5. Code

1) 첫 코드(2023/05/09)

class Solution {
    public int climbStairs(int n) {
        if(n>2){
            int[] step = new int[n];
            step[0] = 1; step[1] = 2;
            for(int i=2 ; i<n ; i++)
                step[i] = step[i-1] + step[i-2];
            return step[n-1];
        } else
            return n;
    }
}

- 처음에 recursive로 구현했는데, n=45일 때 시간 초과가 나왔다.