본문 바로가기
  • 기록
알고리즘

[C++] 백준 2775번: 부녀회장이 될테야

by juserh 2022. 2. 28.

문제 이해하기

처음에 이 문제를 못 풀었다. 

k층1호=1

k층2호=(k-1)층1호+(k-1)층2호=1+(k-1)층2호

k층3호=(k-1)층1호+(k-1)층2호+(k-1)층3호=1+(k-1)층2호+(k-1)층3호=k층2호+(k-1)층3호

이 규칙을 이용해 함수를 따로 정의해주었다.

 

코드로 표현하기

#include <iostream>

using namespace std;

int getNum(int a, int b) {//a층b호
	if (b == 1)//1호
		return 1;
	if (a == 0)//0층
		return b;
	return (getNum(a - 1, b) + getNum(a, b - 1)); //point!
}
int main() {
	int t, k, n;
	cin >> t;

	for (int i = 0; i < t; i++) {
		cin >> k >> n;
		cout << getNum(k, n) << endl;
	}
}

1호는 몇 층인지에 상관없이 늘 1명,

0층은 딱 호 수가 사람 수,

그 외의 경우는 재귀함수를 이용하여 계산되게 코드화

'알고리즘' 카테고리의 다른 글

[C++] 백준 2581번: 소수  (0) 2022.03.16
[C++] 백준 1978번: 소수 찾기  (0) 2022.03.16
[C++] 백준 2292번: 벌집  (0) 2022.02.25
[C++] 백준 1712번: 손익분기점  (0) 2022.02.25
[C++] 백준 10809번: 알파벳 찾기  (0) 2022.02.07