문제
풀이
이 문제에서 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;
}
}
'Algorithm > Python, C++' 카테고리의 다른 글
백준 1011_Fly to the Alpha Centauri [C++] (0) | 2022.06.25 |
---|---|
백준 2839_설탕 배달[C++] (0) | 2022.02.20 |
백준 10250_ACM 호텔[C++] (0) | 2022.01.25 |
백준 1193_분수찾기[C++] (0) | 2022.01.25 |
백준 2869_달팽이는 올라가고 싶다[C++] (0) | 2022.01.24 |
댓글