[BAEKJOON]NO.2775が女性会長になる


https://www.acmicpc.net/problem/2775

最初は上の階の住民数を増やすためだった.
再帰関数を実現すべきであると考えられる.
しかし、再帰関数は実装されていません.
考えてみると、二次元配列を思い出しました.
  • 二次元配列先記憶住民数
  • で作成した2次元配列をもとに、k階n号に住む住民数を探しています.
    -(k-1)階1号からn号までの住民総数
  • 2 D配列を全部並べるには、何層あるか分かりません.
    入力した数だけ作成します.
    動的割り当てを使うべきだと思いますが、
    繰り返しドアの中で作ったので、そうしなくてもいいです.
    #include <iostream>
    using namespace std;
    
    // 부녀회장이 될테야
    int main(void)
    {
        int testcase = 0;
        cin>>testcase;
    
        int k_values[testcase];
        int n_values[testcase];
        for (int i = 0; i < testcase; i++)
        {
            cin>>k_values[i]>>n_values[i];
        }
    
        int sum = 0;
        
        for(int i=0; i<testcase; i++)
        {
            // 아파트에 숫자 채우기
            int apartment[k_values[i]][n_values[i]];
            for(int j=0; j<k_values[i]; j++)
            {
                for(int k=0; k<n_values[i]; k++)
                {
                    if(j==0)
                    {
                        apartment[j][k] = k+1;
                    }
                    else
                    {
                        if(k==0)
                        {
                            apartment[j][k] = 1;
                        }
                        else
                        {
                            apartment[j][k] = apartment[j-1][k] + apartment[j][k-1];
                        }   
                    }
                }
            }
            
    	// k층 n호의 거주민 수 계산
            for(int z=0; z<n_values[i]; z++)
            {
                sum += apartment[k_values[i]-1][z];
            }
    
            cout<<sum<<endl;
            sum = 0;
        }
        return 0;
    }