728x90
출처
https://www.acmicpc.net/problem/9461
내 풀이
#include<iostream>
using namespace std;
long long N[101]; //파도반 수열
int T = 0; //테스트 케이스
int P = 0; //테스트 케이스안에 입력받을 파도반 수열 N[P]
int main()
{
N[1] = 1;
N[2] = 1;
N[3] = 1;
//파도반 수열을 확인해보면 N[i] = N[i - 2] + N[i - 3] 이 성립함
for (int i = 4; i < size(N); i++)
{
N[i] = N[i - 2] + N[i - 3];
}
cin >> T;
for (int i = 0; i < T; i++)
{
cin >> P;
cout << N[P] << endl;
}
}
해설
파도반 수열의 패턴을 파악하면 쉽게 풀 수 있던 문제였다.
패턴은 N[i] = N[i-2] + N[i-3]이 성립했기에 이를 참고하여 미리 값을 저장시켜주고 답을 출력해주었다.
새로 안 것
항상 자료형 크기 주의하기
'백준 코딩테스트 > 실버' 카테고리의 다른 글
1149) RGB거리 (C++) (0) | 2022.04.22 |
---|---|
11047) 동전 0 (C++) (0) | 2022.04.20 |
1904) 01타일 (C++) (0) | 2022.04.19 |
2667) 단지번호붙이기 (C++) (0) | 2022.04.19 |
9184) 신나는 함수 실행 (C++) (0) | 2022.04.18 |