0. 문제 |
1. 아이디어 |
1) 순서대로 그림을 따라서 그려보니까, P(5) 이후의 삼각형들은 모두 시계방향으로 도는 규칙을 가지고 있다. 따라서 점화식을 세웠을 때 P(N) = P(N -1) + P(N - 5) 라는 사실을 발견!
2. 소스코드 |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
#include <iostream>
int main()
{
int T;
long long dp[101];
std::cin >> T;
dp[1] = 1; dp[2] = 1; dp[3] = 1; dp[4] = 2; dp[5] = 2;
for (int r = 0; r < T; r++)
{
int N;
std::cin >> N;
for (int i = 6; i <= N; i++)
dp[i] = dp[i - 1] + dp[i - 5];
std::cout << dp[N]<<'\n';
}
}
|
cs |
3. 결과 |
4. 피드백 |
-
항상 오버플로우 조심 ㅜㅜ
'알고리즘 > BOJ' 카테고리의 다른 글
[C++] 백준 2011번 - 암호코드 (0) | 2020.03.26 |
---|---|
[C++] 백준 2225번 - 합분해 (1) | 2020.03.25 |
[C++] 백준 1699번 - 제곱수의 합 (0) | 2020.03.23 |
[C++] 백준 2579번 - 계단 오르기 (0) | 2020.03.23 |
[C++] 백준 1912번 - 연속합 (0) | 2020.03.23 |