728x90
문제
https://www.acmicpc.net/problem/9461
9461번: 파도반 수열
오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 변의
www.acmicpc.net
발상

위 그림을 순서대로 나열하면,
{1,1,1,2,2,3,4,5,7,9,12}가 된다.
이때, 규칙을 찾아보니 x = (x - 2) + (x - 3)이라는 조건을 찾게 되었고,
x-3의 값에 접근하기위해 값 3개를 미리 넣어두고 포문을 통해 100(문제의 최대범위)개를 넣은 뒤 찾고자 하는 값을 출력하게 하였다.
소스코드
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int testcase = 0,input;
vector < long long > v;
v.push_back(0);
v.push_back(1);
v.push_back(1);
v.push_back(1);
for (int i = 4; i <= 100; i++)
{
v.push_back(v[i - 2] + v[i - 3]);
}
cin >> testcase;
for (int i = 0; i < testcase; i++)
{
cin >> input;
cout << v[input] << '\n';
}
}320x100
'알고리즘 문제' 카테고리의 다른 글
| [백준] 12100번 - 2048 (Easy) [C++] (0) | 2024.09.04 |
|---|---|
| [백준] 2805번 - 파스칼의 삼각형 [C++] (1) | 2023.12.01 |
| [백준] 2805번 - 나무 자르기 [C++] (1) | 2023.12.01 |
| [백준] 9935번 - 문자열 폭발 [C++] (1) | 2023.12.01 |
| [프로그래머스] 타겟넘버 [C++] (0) | 2023.12.01 |