목차
https://www.acmicpc.net/problem/2775
코드
#include <iostream>
using namespace std;
int solution(int k, int n)
{
if(k == 0 || n == 1)
{
return n;
}
else
{
return solution(k, n-1) + solution(k - 1, n);
}
}
int main() {
int t;
int k, n;
cin >> t;
for(int i=0; i<t; i++){
cin >> k >> n;
cout << solution(k, n) << endl;
}
}
설명
어떻게든 재귀함수를 안 쓰려고 몸을 비틀어봤는데, 역시 재귀함수를 쓰는게 가장 편했던 문제였다.
우선, 대략적으로 이 아파트에 거주하는 사람들의 수는 이렇게 된다.
어떻게 한 집에서 129명이나 사는지는 알 수가 없지만...
결론적으로 말하자면, K층 N호 집이라고 하면 그 집에 사는 사람의 수는
(K-1층 N호 집 사람 수) + (K층 N-1호 집 사람수) 가 된다.
그렇기 때문에 재귀함수를 사용해서 풀어주면 된다.
'공부 > 백준(C++) - 2022~' 카테고리의 다른 글
백준 10757번: 큰 수 A+B [C++] (0) | 2022.01.14 |
---|---|
백준 2839번: 설탕 배달[C++] (0) | 2022.01.14 |
백준 10250번: ACM호텔[C++] (0) | 2022.01.13 |
백준 2869번: 달팽이는 올라가고 싶다 [C++] (0) | 2022.01.13 |
백준 1193번: 분수찾기 [C++] (0) | 2022.01.12 |