728x90
반응형

블로그에 올리는 모든 문제 풀이는 깃허브에 올려져 있습니다.


문제 설명

  • a층의 b호에 살려면 (a-1) 층의 1호부터 b호까지 사람들의 수의 합만큼 사람들을 데려와 살아야 한다는 규칙이 있다.
  • 첫째줄에 테스트 케이스의 수 t가 주어지며, 각각의 케이스마다 k층의 n호에는 몇 명이 살고 있는지 구하는 프로그램을 작성하시오. (단, 아파트는 0층부터 있고 각층에는 1호부터 있으며, 0층의 i호에는 i명이 산다.)

풀이 전략

  • k층의 n호는 k-1층의 n호와 k층의 n-1호의 합과 같다.
  • 0층일 경우 n호에 n명 살고 있으므로 n을 리턴

소스 코드

#include <iostream>

using namespace std;
int GetCount(int k, int n)
{
	if (n == 1)
		return 1;
	if (k == 0)
		return n;

	return (GetCount(k - 1, n) + GetCount(k, n - 1));
}
int main()
{
	int count;
	cin >> count;
	for (int i = 0; i < count; ++i)
	{
		int k, n;
		cin >> k >> n;
		cout << GetCount(k, n) << "\n";
	}
}

링크

https://www.acmicpc.net/problem/2775

 

2775번: 부녀회장이 될테야

첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다

www.acmicpc.net

 

728x90
반응형

'문제풀이 > BOJ' 카테고리의 다른 글

[C++ 백준] 2292 벌집  (0) 2021.05.25
[C++ 백준] 1085 직사각형에서 탈출  (0) 2021.05.24
[C++ 백준] 1193 분수 찾기  (0) 2021.05.22
[C++ 백준] 1152 단어의 개수  (0) 2021.05.18
[C++ 백준] 1316 그룹 단어 체커  (0) 2021.05.16