https://www.acmicpc.net/problem/9009
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
int t;
int dp[46];
dp[0]=0;
dp[1]=1;
for(int i=2;i<46;i++){
dp[i]=dp[i-1]+dp[i-2];
}
vector<int>v;
cin>>t;
for(int i=0;i<t;i++)
{
int n;
cin>>n;
for(int j=45; j>=1; j--){
if(dp[j]<=n){
n-=dp[j];
v.push_back(dp[j]);
}
}
sort(v.begin(),v.end());
for(int i=0;i<v.size();i++)
{
cout<<v[i]<<' ';
}
cout<<'\n';
v.clear();
}
}
'PS > 그리디 알고리즘[Greedy]' 카테고리의 다른 글
백준 19941 햄버거 분배 (0) | 2022.07.03 |
---|---|
백준 1449 수리공 항승 (0) | 2022.07.01 |
백준 18310 안테나 (0) | 2022.06.30 |
백준 2812 크게 만들기 (0) | 2022.06.30 |
백준 2012 등수매기기 (0) | 2022.06.30 |