본문 바로가기
코테/DP

[C/C++] 백준 2775, Dynamic Programming

by 상똥 2022. 12. 10.

2775번: 부녀회장이 될테야 (acmicpc.net)

 

2775번: 부녀회장이 될테야

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

www.acmicpc.net

#include <stdio.h>
#include <stdlib.h>
#include <vector>
using namespace std;

int compute(int k, int n) {
	int B[2][15];
	int tod = 0; //현재층 (i-1층)
	int tom = 1; //다음 층 (i층)

	for (int i = 0; i <= n; i++)
		B[0][i] = i;
	for (int i = 1; i <= k; i++) {
		B[tom][1] = B[tod][1];
		for (int j = 2; j <= n; j++)
			B[tom][j] = B[tom][j - 1] + B[tod][j];
		tod = (tod + 1) % 2;
		tom = (tom + 1) % 2;
	}

	return B[tod][n];
}

int main() {
	int tc;
	scanf("%d", &tc);
	int k, n;
	while (tc > 0) {
		scanf("%d", &k);
		scanf("%d", &n);
		printf("%d\n", compute(k, n));
		tc--;
	}
}