-
백준 9095번 -1,2,3더하기백준 algorithm 2019. 8. 29. 21:27반응형
오랜만에 푸는 백준 문제라 푸는데 시간이 걸렸다.
점화식 하나만 세우면 쉬는 문제이다.
f(n)=f(n-1)+f(n-2)+f(n-3)
위의 식을 사용하면 1,2,3을 이용해 더하는 가지의 수를 더할 수 있다.본인은 기본적으로 벡터를 사용하여
1,2,3을 이용하여 1을 만들 수 있는 가지의 수 = 11,2,3을 이용하여 2을 만들 수 있는 가지의 수 = 2
1,2,3을 이용하여 3을 만들 수 있는 가지의 수 = 4
를 벡터에 두고서 제한값이 11까지의 값을 계산하였다.
#include <iostream> #include <vector> using namespace std; int main() { int n;//반복할 횟수 변수 cin >> n; vector<int> v(12); vector<int> num; v[1] = 1; v[2] = 2; v[3] = 4;//v[n]을 만들수 있는 숫자 갯수 for (int i = 4; i < 12; i++) { v[i] = v[i - 1] + v[i - 2] + v[i - 3]; //이 문제를 풀 수 있는 점화식 } for (int j = 0; j < n; j++) { int n; cin >> n; num.push_back(n); } for (int k = 0; k < n; k++) { cout << v[num[k]]; cout << endl; } return 0; }
반응형'백준 algorithm' 카테고리의 다른 글
백준 1065 - 한수 (0) 2019.09.02 백준 11727 - 2×n 타일링 2 (0) 2019.08.31 백준 2440 - 별 찍기 - 3 (0) 2019.08.31 백준 2439-별찍기-2 (0) 2019.08.31 백준 2438-별 찍기 - 1 (0) 2019.08.31