알고리즘/[항해99] 1일 1알고리즘 스터디

99클럽 코테 스터디 6일차 TIL ✒️계단 오르기

hooooolly 2025. 4. 7. 23:25

✅ 오늘의 학습 키워드

  • 피보나치 수열
  • 경우의 수 구하기

 


🔍 오늘의 문제 분석

↘️ 오늘의 문제 바로가기 ↘️

 

  • 한 번에 1 계단 또는 2 계단을 올라간다
  • 주어지는 n개의 계단을 오를 수 있는 모든 경우의 수를 찾는다

✨ 오늘의 회고

📌내가 적은 답안📌

더보기
class Solution {
    public int climbStairs(int n) {
        int a = 0;
        int b = 1;
        int c = 0;

        for (int i = 0; i < n; i++) {
            c = a + b ;
            a = b;
            b = c;
        }
        return b;
    }
}

 

오늘의 문제는 접근 방식이 아주 다양했다. 같은 접근 방식이더라도 구현하는 코드가 달라지기도 했다. 가장 간단하게 구현할 수 있는 방법은 피보나치 수열과 로직이 동일한 것을 이용해서 피보나치 수열처럼 문제를 푸는 것이다.

 

n칸까지 가는 방법은 마지막에 한 칸을 남기고 한칸을 이동하는 경우의 수 + 마지막에 두 칸을 남기고 두칸을 이동하는 경우의 수가 되는데 피보나치 수열과 동일한 규칙을 가지고 있다. 코드에서 변수 a는 F(n-2), b는 F(n-1), c는 F(n) 값을 의미하고 반복문을 돌면서 계단 수를 추적한다.  → F(n) = F(n - 1) + F(n - 2)를 구현!