백준 2775_부녀회장이 될테야.cpp

hello_hidi·2021년 7월 5일
0

baekjoon_C++

목록 보기
18/33
post-thumbnail

<소스코드>

#include <iostream>
using namespace std;
int getNum(int a, int b){
  if(b == 1)
    return 1;
  if(a == 0)
    return b;
  return (getNum(a-1, b) + getNum(a, b-1));
}

int main() {
  int T, k, n;
  cin>>T;
  for(int i=0; i<T; i++){
    cin>>k>>n;
    cout<<getNum(k, n)<<'\n';
  }
}
  1. 변수
    int getNum(int a, int b) : 거주민을 구하는 재귀함수
    int T : 테스트케이스 개수
    int k, n : 층, 호
  1. 알고리즘
    1) 역시 수학 알고리즘 문제는 규칙을 찾는 것이 중요한 거 같다. k층 n호 = k-1층 n호 + k층 n-1호

    2) 이 방식으로 재귀함수를 돌리게 되면 두 가지의 경우가 나오게 된다.
  • n = 1 : 1호는 모두 1명만 살기 때문에 1을 더해주면 된다.
  • k = 0 : 0층에서는 n을 더해주면 된다.
  1. 배운점
    재귀함수의 중요성을 너무 깨달았다.
  1. 아쉬운점&느낀점
    이 문제를 재귀로 풀어야 됨은 느꼈지만 결국에는 해내지 못했다. 재귀함수에 관한 알고리즘을 책을 통해서 좀 익혀야겠다. 또한 규칙찾기!!!! 진짜 중요한 거 같다. 항상 신경쓰자!!!
profile
안뇽희디

0개의 댓글