코테 준비-문제풀기

계단 오르기 문제 - 재귀함수 사용

FireStone 2020. 7. 29. 19:04

문제는 이런거였고,

재귀함수를 사용해 풀었다.

- 처음에 1로 시작했을때

-처음에 2로 시작했을때를

나눠서 방법을 다르게 하였고, left를 통해 남은 계단의 수를 체크해주었다.

남은 계단의 수가 0일때 방법의 수(count)를 1씩 증가시켜 마지막에 count를 출력해주었다.

#include <stdio.h>
#include <iostream>
#include <vector>
#include <stack>

using namespace std;
int count=0;
int calculate(int num, int left){
    if(num==1){
        left-=1;
    }
    else if(num==2){
        left-=2;
    }
    if(left==0){
        count++;
        return 0;
    }
    else{
        if(left>=1)
        calculate(1,left);
        if(left>=2)
        calculate(2,left);
    }
    
    
}

int main()
{
    int num;
    int left;
    cin >>num;
    left=num;
    
    if(left>=1){
        calculate(1,left);
    }
    if(left>=2){
        calculate(2,left);
    }
 
    cout<<count;

    return 0;
}