문제 링크입니다: https://www.acmicpc.net/problem/16395
간단한 DP 문제였습니다.
#include <iostream>
#include <cstring>
using namespace std;
const int MAX = 30 + 1;
int cache[MAX][MAX];
int comb(int n, int k)
{
if (n == k || k == 0)
return 1;
int &result = cache[n][k];
if (result != -1)
return result;
result = comb(n - 1, k - 1) + comb(n - 1, k);
return result;
}
int main(void)
{
ios_base::sync_with_stdio(0);
cin.tie(0);
int N, K;
cin >> N >> K;
memset(cache, -1, sizeof(cache));
cout << comb(N - 1, K - 1) << "\n";
return 0;
}
개발환경:Visual Studio 2017
지적, 조언, 질문 환영입니다! 댓글 남겨주세요~
반응형
'알고리즘 > BOJ' 카테고리의 다른 글
백준 16397번 탈출 (0) | 2018.11.10 |
---|---|
백준 16396번 선 그리기 (0) | 2018.11.10 |
백준 16394번 홍익대학교 (0) | 2018.11.10 |
백준 5211번 가단조와 다장조 (0) | 2018.11.09 |
백준 2890번 카약 (0) | 2018.11.09 |