https://www.acmicpc.net/problem/9461
이 문제는 DP를 통해 해결할 수 있다.
알고리즘은 다음과 같다.
수의 변화는 전 요소와 5번째 전 요소를 합한 값과 같다.
이는 6번째 요소부터 규칙을 가지기 때문에 이를 코드로 변화시키면 된다.
#include <iostream>
#include <string>
using namespace std;
int N;
long long dp[101];
int main() {
int T;
cin >> T;
for (int i = 0; i < T; i++) {
cin >> N;
dp[1] = 1;
dp[2] = 1;
dp[3] = 1;
dp[4] = 2;
dp[5] = 2;
for (int i = 6; i <= N; i++) {
dp[i] = dp[i - 1] + dp[i - 5];
}
cout << dp[N] << '\n';
}
}
'Baekjoon Review' 카테고리의 다른 글
[Silver 2] 1927번 최소 힙 (0) | 2023.11.27 |
---|---|
[Gold 4] 1043번 거짓말 (0) | 2023.11.27 |
[Silver 2] 1912번 연속합 (0) | 2023.11.14 |
[Silver 3] 9095번 1, 2, 3 더하기 (0) | 2023.11.14 |
[Gold 5] 12865번 평범한 배낭 (0) | 2023.11.13 |