백준 2775_부녀회장이 될테야[C++]
본문 바로가기
Algorithm/Python, C++

백준 2775_부녀회장이 될테야[C++]

by liveloper jay 2022. 2. 20.

문제

 

풀이

 이 문제에서 a층 b호에 거주하는 인원의 수는 그 아래층의 1호부터 b호까지의 거주인원수를 다 더한 인원입니다.

예를 들어 1층 4호에 산다고 가정하면 0층 1호~ 0층 4호까지 거주하는 인원수를 더해주면 됩니다. 즉 1층 4호의 거주인원 = 1+2+3+4= 4명이 살게 됩니다.

이것을 풀이하면 입력받는 a층 b호 만큼의 배열을 생성한 후, 이중for문을 이용하여 0층의 1호 부터 b호까지는 1부터 시작해서 1씩 커지게 값을 넣어주면 되고, 1층 부터는 [층수-1][0]~[층수-1][현재 호수] 까지의 값을 더해서 배열에 저장해주면 됩니다. 

 

 

 

소스코드

#include<iostream>
using namespace std;

int main(){
    int t,k,n;
    cin >> t;
    for (int i = 0; i < t; i++)
    {
        cin >> k >> n;
        int resident[k+1][n+1]={0,};
        for (int j = 0; j <= k; j++)
        {
            for (int l = 0; l < n; l++)
            {
                if (j==0){resident[0][l]=l+1;}
                else{
                    for (int m = 0; m <= l; m++)
                    {
                        resident[j][l]+=resident[j-1][m];
                    }
                }
            }
        } 
        cout << resident[k][n-1]<<endl; 
    }
}

댓글