해결방법
조금 어려운 문제.
0층부터 살고있고, 자신의 아래 층, 예를 들어 1층 2호라면 0층의 1호부터 2호의 사람의 수인 3명을 데려와야 한다.
그래서 제한조건인 n<=14를 활용해서 그냥 15층짜리 집의 거주민을 미리 구해놓기로 했다.
반복문을 통해 0층부터 차례대로 사람의 수를 구해준다.
정답 코드
#include <iostream>
using namespace std;
int main()
{
int T;
cin >> T;
int house[15][15] = { 0 };
for (int n = 1; n < 15; n++)
{
house[0][n] = n;
}
for (int k = 1; k < 15; k++)
{
for (int n = 1; n < 15; n++)
{
house[k][n] = house[k][n - 1] + house[k - 1][n];
}
}
for (int t = 0; t < T; t++)
{
int k, n;
cin >> k >> n;
cout << house[k][n] << endl;
}
return 0;
}
'코딩테스트' 카테고리의 다른 글
BOJ - 이항 계수 1 11050 (0) | 2024.12.17 |
---|---|
BOJ - FizzBuzz 28702 (0) | 2024.12.15 |
BOJ - 데칼코마니 23841 (0) | 2024.12.15 |
BOJ - 너의 평점은 25206 (0) | 2024.12.15 |
BOJ - 블랙잭 2798 (0) | 2024.12.15 |