TIL(Today I Learned)

99클럽 코테 스터디 6일차 TIL + LeetCode 70 (Climbing Stairs, java)

zincah 2025. 4. 7. 22:10
반응형

오늘의 학습 키워드

  • 피보나치 수열
  • 다이나믹 프로그래밍 (DP)

문제 탐색하기

문제

문제 풀이 설계하기

예시를 들어서 설명하면 n을 5라고 했을 때 5가 될 수 있는 경우의 수는 연산에는 1또는 2만 사용할 수 있으므로

4가 될 수 있는 경우의 수에서 + 1을 하는 것과 3이 될 수 있는 경우의 수에서 +2를 하면 됩니다.

f(n) = f(n-2) + f(n-1)

 

따라서 위와 같은 식이 성립이 되는데 이를 풀기 위해서 반복문을 통해 각 수가 될 수 있는 경우의 수를 계속 구해주면 됩니다.

 

코드

class Solution {
    public int climbStairs(int n) {

        int[] nArr = new int[46];
        nArr[1] = 1;
        nArr[2] = 2;

        for(int i=3; i<=n; i++){
            nArr[i] = nArr[i-1] + nArr[i-2];
        }

        return nArr[n];
    }
}

 

오늘의 회고

다이나믹 프로그래밍을 통해 문제를 풀 수 있는 좋은 경험이었습니다.
반응형