본문 바로가기

Algorithm/BAEKJOON

[BOJ] 15988번 1, 2, 3 더하기 3 (C++)

728x90
반응형

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

 

15988번: 1, 2, 3 더하기 3

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

www.acmicpc.net

 

#include <iostream>
using namespace std;

int main() {
	int n, num;
	long long dp[1000001] = {0, 1, 2, 4};
	for(int i = 4; i <= 1000001; i++){
		dp[i] = ((dp[i - 1] + dp[i - 2])% 1000000009 + dp[i - 3]) % 1000000009;
	}
	
    cin >> n;
	for(int i = 0; i < n; i++){
		cin >> num;
		cout << dp[num] << endl;
	}
	return 0;
}

 

점화식: dp[i] = dp[i - 1] + dp[i - 2] + dp[i - 3]

728x90
반응형