본문 바로가기
Programming/C++ - 백준

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

by 지구코드 2023. 5. 24.
반응형


문제


풀이

k층의 n호에 거주하는 사람은 아래의 표와 같다.

 

재귀함수를 이용하여, getNum 함수를 만들었다.

 

int getNum(int x, int y) {
	if (y == 1) {	
		return 1;
	}
	else if (x == 0) {
		return y;
	}
	else {
		return (getNum(x - 1, y) + getNum(x, y - 1));
	}
}

 

if else 문을 이용하여 n = 1인 경우에는, 항상 한 명이 거주하고 있기 때문에 return 1을

k = 0인 경우에는, 항상 n명이 거주하고 있기 때문에 return n을 해주었다.

 

위의 경우가 아니라면, (k층의 n-1호) + (k-1층의 n호) = (k층의 n호)가 성립한다.

 


코드

#include <iostream>
using namespace std;

int getNum(int x, int y) {
	if (y == 1) {	
		return 1;
	}
	else if (x == 0) {
		return y;
	}
	else {
		return (getNum(x - 1, y) + getNum(x, y - 1));
	}
}

int main() {
	int T, k, n;
	cin >> T;

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

결과

 

 

2775번: 부녀회장이 될테야

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

www.acmicpc.net

 

반응형

댓글