백준

[c++/백준] 9095 1, 2, 3 더하기

돈 많은 백수가 되고싶다 2023. 5. 5. 23:59

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

 

9095번: 1, 2, 3 더하기

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

www.acmicpc.net

#include <string>
#include <vector>
#include <iostream>
#include <algorithm>
#include <set>
using namespace std;

int main() {
	ios::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);
	
	int n;
	cin >> n;

	int dp[13] = {};
	dp[0] = 1;
	dp[1] = 2;
	dp[2] = 4;

	for (int i = 3; i < 12; i++) {
		dp[i] = dp[i - 1] + dp[i - 2] + dp[i - 3];
	}

	for (int i = 0; i < n; i++) {
		int x;
		cin >> x;

		cout << dp[x - 1] << endl;
	}
	
}

다이나믹 프로그래밍 꿀팁! 없음요

그냥 규칙만 잘 찾으면 끝,, 

 

그 이후에는 시간초과 안걸리게 재귀 사용하지 않고 동적계획법 사용하면 됩니다 짜잔~