백준/Class3

[백준] Class3-1,2,3 더하기 C++ 9095번

taene_ 2023. 9. 21. 14:49

https://www.acmicpc.net/problem/9095

 

9095번: 1, 2, 3 더하기

각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다.

www.acmicpc.net

#include <iostream> 
using namespace std;

int main()
{
	int dp[12] = {0,1,2,4,};
	int t;
	cin >> t;
	for (int i = 4; i <= 11; i++)
	{
		dp[i] = dp[i - 3] + dp[i - 2] + dp[i - 1];
	}

	while (t--)
	{
		int n;
		cin >> n;
		cout << dp[n] << '\n';
	}

	return 0;
}

규칙: n=1일때 1, n=2일때 2, n=3일때 4, n=4일때 7, n=5일때 13, ... 을 점화식으로 옮기면 dp[n]=dp[n-3]+dp[n-2]+dp[n-1]이 된다.