파스칼의 삼각형을 구현하는 문제이다.
다른 사람들의 풀이를 보니 파스칼의 삼각형을 구현하지 않고 수학적 식을 찾아내어 풀이한 경우도 보였다. 참고해 다른 답을 제출해 보겠다.
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
void find_answer(int n, int k)
{
int answer;
vector<vector<int>> triangle;
int i, j, next;
triangle.push_back({ 1 });
triangle.push_back({ 1, 1 });
for (i = 2; i < n; i++)
{
vector<int> temp(1, 1);
for (j = 1; j < i; j++)
{
next = triangle[i-1][j-1] + triangle[i-1][j];
temp.push_back(next);
}
temp.push_back(1);
triangle.push_back(temp);
}
cout << triangle[n-1][k-1] << "\n";
return;
}
int main(void)
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int n, k;
cin >> n >> k;
find_answer(n, k);
return 0;
}