본문 바로가기

코딩 테스트

백준 11050(r)

이항계수 식의 팩토리얼을 이용하여 푸는 문제.

재귀를 이용하여 풀었다. 다중에 다시 봐야할 문제 같다..

재귀에 더 많은 이해를 한 뒤에 접근해야 할 것 같다. 재귀의 접근방식이 아직 익숙하지 않다.

 

#include <iostream>
#include <ctime>


using namespace std;

int Dynamic(int n, int k)
{
	int dp[40][40] = { 0, };

	if (dp[n][k] > 0)
	{
		return dp[n][k];
	}

	if (k == 0 || n == k)
	{
		dp[n][k] = 1;
		return dp[n][k];
	}
	return Dynamic(n - 1, k - 1) + Dynamic(n - 1, k);
}

//int Dynamic(int n, int k)
//{
//	if (k == 0 || n == k)
//	{		
//		return 1;
//	}
//	return Dynamic(n - 1, k - 1) + Dynamic(n - 1, k);
//}
int main(void)
{
	ios::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

	int n, k;
	cin >> n >> k;

	cout << Dynamic(n, k);

	return 0;
}

'코딩 테스트' 카테고리의 다른 글

백준 2775  (0) 2023.06.30
백준 10871  (0) 2023.06.29
백준 2164  (0) 2023.06.26
백준 10951  (0) 2023.06.26
백준 1152  (0) 2023.06.24