한 번에 한 칸, 두 칸을 움직일 수 있을 때 계단을 오르는 경우의 수를 구합니다.
한 칸은 바로 전 계단의 경우의 수에서 하나를 더한 값이고
두 칸은 전전 계단의 경우의 수에서 둘을 더한 값이므로
전과 전전칸의 경우의 수를 더해줍니다.
class Solution {
public int climbStairs(int n) {
int[] memoi = new int[10000];
memoi[1] = 1;
memoi[2] = 2;
for(int i = 3; i <= n; i++) {
memoi[i] = memoi[i-1] + memoi[i-2];
}
return memoi[n];
}
}