[BOJ] 9095. 1, 2, 3 더하기

동스토리 ㅣ 2020. 9. 20. 21:57

반응형

문제

www.acmicpc.net/problem/9095

 

9095번: 1, 2, 3 더하기

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

www.acmicpc.net


풀이

 

n 번째에서 1,2,3의 합으로 이루어진 경우는
n-1 번째에서 각각의 값에 1을 더하는 경우
n-2 번째에서 각각의 값에 2를 더하는 경우
n-3 번째에서 각각의 값에 3을 더하는 경우로 나타낼 수 있다.

-> f(n) = f(n-1) + f(n-2) + f(n-3)


코드

#include<iostream>
using namespace std;

int DP[11];

int main() {

	ios::sync_with_stdio(false);
	cin.tie(NULL);
	int T;
	cin >> T;
	DP[1] = 1;
	DP[2] = 2;
	DP[3] = 4;
	int check;

	for (int N = 4; N <= 11; N++) DP[N] = DP[N - 1] + DP[N - 2] + DP[N - 3];

	for (int i = 0; i < T; i++) {
		cin >> check;
		cout << DP[check] << '\n';

	}

}

 

 

반응형

'Development > Algorithm' 카테고리의 다른 글

[BOJ] 11057. 오르막수  (0) 2020.09.22
[BOJ] 10844. 쉬운 계단 수  (0) 2020.09.20
[BOJ] 11727. 2 x n 타일링2  (0) 2020.09.20
[BOJ] 11726. 2 x n 타일링  (0) 2020.09.20
[BOJ] 1463. 1로 만들기  (0) 2020.09.20