ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 백준 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을 만들 수 있는 가지의 수 = 1

    1,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

    댓글

Designed by Who.