k-1층의 1~b호 까지의 사람들이 k층 b호에 살아야 된다.

0층 i호에는 i명이 산다.


배열이

1 2 3 4 5

1 3 6 10 15

이런식으로 만들어진다.

위에서 부터 0층 1층 으로 계산했을때

d[i][j] = d[i-1][j] + d[i][j-1] 이다.


그래서 처음 입력받기 전에 초기화해주고 

입력받는 값으로 배열에 대입해서 출력하면 된다.

#include <cstdio>
/**
* https://www.acmicpc.net/problem/2775
* BOJ 백준온라인져지 2775 부녀회장이 될테야 풀이
*/
#define MAX 15
int main(){
int T,k,n;
scanf("%d", &T);
int d[MAX][MAX] = {};
for(int i = 1; i<MAX; i++){
d[0][i] = i;
d[i][1] = 1;
}
for(int i = 1; i<MAX; i++){
for(int j = 2; j<MAX; j++){
d[i][j] = d[i][j-1] + d[i-1][j];
}
}
while(T--){
scanf("%d%d",&k,&n);
printf("%d\n",d[k][n]);
}
return 0;
}
view raw BOJ_2775.cpp hosted with ❤ by GitHub


+ Recent posts