문제

제출한 코드

package easy;

public class ClimbingStairs {
    // TimeOut Exception
    /*public int climbStairs(int n) {
        if (n == 1) {
            return 1;
        } else if (n == 2) {
            return 2;
        } else {
            return climbStairs(n-1) + climbStairs(n-2);
        }
    }*/

    int[] resultArray = new int[46];

    public int climbStairs(int n) {
        if (n <= 0) {
            return 0;
        }
        if (resultArray[n] != 0) {
            return resultArray[n];
        }
        if (n == 1) {
            resultArray[1] = 1;
            return 1;
        } else if (n == 2) {
            resultArray[2] = 2;
            return 2;
        } else {
            resultArray[n] = climbStairs(n-1) + climbStairs(n-2);
            return resultArray[n];
        }
    }
}

잘한점

개선할 점

Most Upvote Code

public class Solution {

public int climbStairs(int n) {
    if(n == 0 || n == 1 || n == 2){return n;}
    int[] mem = new int[n];
    mem[0] = 1;
    mem[1] = 2;
    for(int i = 2; i < n; i++){
        mem[i] = mem[i-1] + mem[i-2];
    }
    return mem[n-1];
}

배울 점

Submission Image