줘이리의 인생적기

백준 C++ 9095번 1, 2, 3 더하기 본문

공부/백준

백준 C++ 9095번 1, 2, 3 더하기

줘이리 2020. 6. 22. 19:04
728x90

문제 바로가기(출처) : https://www.acmicpc.net/problem/9095

 

9095번: 1, 2, 3 더하기

문제 정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다. 1+1+1+1 1+1+2 1+2+1 2+1+1 2+2 1+3 3+1 정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는

www.acmicpc.net

 

설명

백준 9095문제 다이나믹 프로그래밍 문제입니다.

점화식을 이용하여 풀면 되겠습니다.

DP[i] = DP[i-1] + DP[i-2] + DP[i-3]

 

코드

#include <iostream>
using namespace std;

int dp[1000] = {};
int n, k;

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

int main(){
	cin >> n;
	dp[0] = 1;
	dp[1] = 1;
	dp[2] = 2;
	dp[3] = 4;
	int j;
	for(int i=1; i<=n; i++){
		cin >> j;
		cout << DP(j) << '\n';
	}
}

 

 

결과

 

지적 및 개선사항은 언제든지 댓글로 부탁드립니다!

'공부 > 백준' 카테고리의 다른 글

백준 C++ 11399번 ATM  (0) 2020.07.27
백준 c++ 5585번 거스름돈  (0) 2020.06.22
백준 C++ 2588번 곱셈  (1) 2020.05.12
백준 c++ 1330번 두 수 비교하기  (0) 2020.05.11
백준 c++ 1138번 한 줄로 서기  (0) 2020.05.10