[백준/C++]9461번_파도반 수열

이수진·2022년 4월 27일
0

문제는 다음과 같습니다.

나선에서 가장 긴 변의 길이가 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;
}

profile
꾸준히, 열심히, 그리고 잘하자

0개의 댓글