Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 오블완
- algorithm
- NRVO
- IFileDialog
- softeer
- 2294
- DeferredRendering
- Unreal Engine5
- 줄 세우기
- Frustum
- UnrealEngine4
- 프로그래머스
- C++
- Programmers
- RVO
- baekjoon
- const
- 언리얼엔진5
- 1563
- RootMotion
- 팰린드롬 만들기
- GeeksForGeeks
- UnrealEngine5
- DirectX11
- 티스토리챌린지
- directx
- winapi
- 백준
- UE5
- C
Archives
- Today
- Total
Game Develop
[Algorithm]Baekjoon 15993번 :: 1,2,3 더하기 8 본문
https://www.acmicpc.net/problem/15993
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
using namespace std;
int t, n, maxN;
vector<int> answers;
unsigned int dp[100001][2] = { 0 };
const int MOD = 1000000009;
int main()
{
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
cin >> t;
while (t--)
{
cin >> n;
maxN = max(maxN, n);
answers.push_back(n);
}
dp[1][1] = 1;
dp[2][0] = 1;
dp[2][1] = 1;
dp[3][0] = 2;
dp[3][1] = 2;
dp[4][0] = 4;
dp[4][1] = 3;
for (int i = 5; i <= maxN; ++i)
{
for (int j = 0; j < 2; ++j)
{
int isOdd = (j + 1) % 2;
dp[i][j] += (dp[i - 1][isOdd]) % MOD;
dp[i][j] += (dp[i - 2][isOdd]) % MOD;
dp[i][j] += (dp[i - 3][isOdd]) % MOD;
}
}
for (int i = 0; i < answers.size(); ++i)
{
printf("%d %d\n", dp[answers[i]][1] % MOD, dp[answers[i]][0] % MOD);
}
}
|
cs |
이번엔 각 수를 구성하는 짝수, 홀수의 경우의개수를 구하는 문제이다.
이전문제들을 풀었던것들과 비슷하게 생각해서 풀 수 있었다.
예를들어 숫자5의 짝수,홀수 경우의개수를 구하는 경우를 생각해보자.
숫자 1,2,3을만을 붙일 수 있으니, 숫자5의 짝수의 개수 중 한묶음은 숫자4를 이루는 '홀수'의 개수가 될 것이다.
숫자 4에다가 숫자 1을붙이면 숫자 5가 됨이 동시에, 짝수가 되기 때문이다. (홀수의 개수에 1개를 붙였으니 짝수)
마찬가지 원리로 숫자3을 이루는 홀수의 개수에다가 숫자2를 붙이면 숫자 5가 됨이 동시에 짝수가된다.
마지막으로 숫자2를 이루는 홀수의 개수에다가 숫자3을 붙이면 숫자 5가 됨이 동시에 짝수가 된다.
'Algorithm > Baekjoon' 카테고리의 다른 글
[Algorithm]Baekjoon 1535번 :: 안녕 (0) | 2024.01.24 |
---|---|
[Algorithm]Baekjoon 15993번 :: 1,2,3 더하기 9 (1) | 2024.01.23 |
[Algorithm]Baekjoon 15992번 :: 1,2,3 더하기 7 (1) | 2024.01.23 |
[Algorithm]Baekjoon 15991번 :: 1,2,3 더하기 6 (1) | 2024.01.23 |
[Algorithm]Baekjoon 1654번 :: 랜선 자르기 (0) | 2024.01.21 |