문제는 다음과 같습니다.
나선에서 가장 긴 변의 길이가 N일 때, 그 변에 길이가 K인 삼각형을 추가하며 도형을 계속 이어붙여갑니다.
도형을 잘 살펴보면,
기본 1~5까지가 초기 조건이고
6번째부터는 (정삼각형의 한 변의 길이) = (바로 이전 항 삼각형) + (5번째 이전 항 삼각형) 임을 금방 찾을 수 있습니다.
간단한 문제이므로, 여기까지 설명해도 될 것 같습니다.
전체 코드는 다음과 같습니다🙆🏻♀️
#include <iostream>
#include <vector>
using namespace std;
int main(){
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
long long dp[101];
dp[1]=1; dp[2]=1; dp[3]=1; dp[4]=2; dp[5]=2;
for(int i=6; i<=100; i++){
dp[i] = dp[i-1] + dp[i-5];
}
int n; vector<int> v;
cin>>n;
for(int i=0; i<n; i++){
int tmp; cin>>tmp; v.push_back(tmp);
}
for(int i=0; i<v.size(); i++){
cout<<dp[v[i]]<<"\n";
}
return 0;
}