1. 그냥 풀기 // for문을 이용
#include <stdio.h>
int main(void)
{
int a;
scanf("%d",&a);
for(int i=0;i<a;i++)
{
int k,n;
scanf("%d %d",&k,&n);
int arr[k+1][n]; //k가 층, n이 호
for(int j=0;j<n;j++)
{
arr[0][j]=j+1;
}
for(int j=1;j<k+1;j++) //j가 층
{
for(int q=0;q<n;q++)
{
int add=0;
for(int p=0;p<=q;p++)
add+=arr[j-1][p]; //밑에 층 합
arr[j][q]=add;
}
}
printf("%d\n",arr[k][n-1]);
}
return 0;
}
2. 아래와 왼쪽의 값으로 새로운 항이 만들어지는 표에서는 그 값을 이용하여 표를 만드는 것이 더 효과적
for(int i=1; i<15; i++){
for(int j=1; j<15; j++){
arr[i][j] = arr[i-1][j] + arr[i][j-1];
} // 문제에서 말한 공식대로 밑에층의 1호부터 해당호까지 사람들의 합을 arr[i][j]에 넣어준다.
}