[백준/BOJ] 백준 9461번 : 파도반 수열
2020. 8. 18. 10:47ㆍ알고리즘 문제풀이
https://www.acmicpc.net/problem/9461
n>=6일 때 P(n) = P(n-1) + P(n-5)라는 성질을 이용했다
코드
#include <iostream>
#include <cstring>
using namespace std;
long long cache[101];
long long Solve(int n)
{
long long& ret = cache[n];
//이미 값을 알고 있을때
if (ret != -1)
return ret;
ret = Solve(n - 1) + Solve(n - 5);
return ret;
}
void Pre()
{
for (int i = 0; i < 101; i++)
cache[i] = -1;
cache[1] = 1;
cache[2] = 1;
cache[3] = 1;
cache[4] = 2;
cache[5] = 2;
}
int main()
{
cin.tie(NULL);
ios_base::sync_with_stdio(false);
Pre();
int t;
int n;
cin >> t;
for (int tc = 0; tc < t; tc++)
{
cin >> n;
cout << Solve(n) << "\n";
}
return 0;
}
'알고리즘 문제풀이' 카테고리의 다른 글
[백준/BOJ] 백준 2960번 : 에라토스테네스의 체 (0) | 2020.08.19 |
---|---|
[백준/BOJ] 백준 11052번 : 카드 구매하기 (0) | 2020.08.18 |
[백준/BOJ] 백준 11727번 : 2×n 타일링 2 (0) | 2020.08.18 |
[백준/BOJ] 백준 1039번 : 교환 (0) | 2020.08.18 |
[백준/BOJ] 백준 12761번 : 돌다리 (0) | 2020.08.18 |