https://www.acmicpc.net/problem/9461
์์ด๋์ด
๋ฌธ์ ๋ฅผ ํ๊ณ ๋ค๋ฅธ ๋ธ๋ก๊ทธ ๊ธ๋ค๋ ๋ดค๋๋ฐ ๊ท์น์ด ์ฌ๋ฌ๊ฐ์ง๋ผ ์ฌ๋ฌ ๋ฐฉ์์ ์ ํ์์ผ๋ก ํ ์ ์๋ค. ๋์ด๋๊ฐ ์ฌ์ด ํธ์ ๋ฌธ์ ์ด๋ค. P(N)์ ์ญ ๋์ดํ๋ฉด ์๋์ ๊ฐ๋ค.
N | P(N) |
1 | 1 |
2 | 1 |
3 | 1 |
4 | 2 |
5 | 2 |
6 | 3 |
7 | 4 |
8 | 5 |
9 | 7 |
10 | 9 |
11 | 12 |
12 | 13 |
๋์ ๊ฒฝ์ฐ 1~5๊น์ง๋ ๊ท์น์ด ์ ์ฉ๋์ง ์๋๋ค๊ณ ๋ณด๊ณ P(N)=P(N-1)+P(N-5)๋ผ๊ณ ์ ํ์์ ์ธ์์ ํ์๋๋ฐ P(N)=P(N-2)+P(N-3)์ด๋ผ๊ณ ์ ํ์์ ์ธ์ธ ์๋ ์๋ค.
๋ฐฐ์ด ์
1. long long ํ ์ฌ์ฉํ๊ธฐ
์ฝ๋๋ ๊ทธ๋ฅ ์ฌ๊ทํจ์๋ก ํ์ด๋ฒ๋ฆฌ๋ฉด ์๊ฐ์ด๊ณผ๊ฐ ๋๊ธฐ ๋๋ฌธ์ ๋์ ๊ณํ๋ฒ์ ์ด์ฉํด์ ๋ฌธ์ ๋ฅผ ํ์ด์ผ ํ๋ค. ๋ P(100)์ ๊ฒฝ์ฐ ์ซ์๊ฐ ๊ต์ฅํ ํฌ๊ธฐ ๋๋ฌธ์(888855064897) intํ์ด ์๋ long longํ์ ๊ฐ์ ๋ด์์ค์ผ ํ๋ค. ํผ๋ณด๋์น ์์ด๊ณผ ๋น์ทํ ๋ฐฉ์์ ๋ฌธ์ ์๋ long long์ ์ ์ฉํ๋ ์ต๊ด์ ๋ค์ด๋ ๊ฒ์ด ์ข์ ๊ฒ ๊ฐ๋ค. ํผ๋ณด๋์น ์์ด์์๋ 90๋ฒ์งธ ์ ๋ถํฐ๋ int์๋ฃํ์ด ๋ด์ ์ ์๋ ํฌ๊ธฐ๋ฅผ ์ด๊ณผํ๋ค๊ณ ํ๋ค.
2. memsetํจ์
์ด ๋ฌธ์ ์ ๊ฒฝ์ฐ ํ ์คํธ์ผ์ด์ค๊ฐ ๋ฌ๋ผ์ง๋ค๊ณ ํด๋ ๊ตณ์ด ์๋ ์ฌ์ฉํ๋ ๋ฐฐ์ด์ ์ด๊ธฐํํ ํ์๋ ์์ง๋ง ๋ฌธ์ ๋ฅผ ํ๋ฉด์ memsetํจ์์ ๋ํด ๋ค์ ๋ณต์ตํ๋ค. ์ผ๋ฐ์ ์ผ๋ก for๋ฌธ์ด๋ fill_n๋ณด๋ค ๋น ๋ฅด๊ธฐ ๋๋ฌธ์ ๋ง์ด ์ฌ์ฉํ๋ค. ๋ค๋ง memset์ ๊ฒฝ์ฐ 1byte๊ฐ์ผ๋ก ์ด๊ธฐํ๊ฐ ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ charํ์ด๋ 0์ผ๋ก ๋ฐฐ์ด์ ์ฑ์ฐ๋ ๊ฒ๋ง ๊ฐ๋ฅํ๋ค. ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ fill์ ์ฌ์ฉํด์ผํ๋ค.
//memsetํจ์ ์์
#include <string.h> //๋๋ #include <memory.h>
memset([๋ฐฐ์ด์ด๋ฆ], ๋ฃ์ ๊ฐ(1byte), sizeof([๋ฐฐ์ด์ด๋ฆ]))
//fillํจ์ ์์
#include <algorithm>
int arr[10][20];
fill(&(arr[0][0]),&(arr[0][0])+10*20,1)
์ฝ๋
#include <iostream>
#include <string.h>
using namespace std;
long long arr[101];
void setting() {
memset(arr, 0, sizeof(arr));
arr[1] = 1;
arr[2] = 1;
arr[3] = 1;
arr[4] = 2;
arr[5] = 2;
}
long long triangle(int a) {
if (a < 6) {
return arr[a];
}
else if (arr[a] == 0) {
arr[a] = triangle(a - 1) + triangle(a - 5);
return arr[a];
}
else {
return arr[a];
}
}
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
int T, a;
cin >> T;
while (T--) {
cin >> a;
setting();
cout << triangle(a) << "\n";
}
}
'์ฝ๋ฉํ ์คํธ > BOJ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค 14889] ์คํํธ์ ๋งํฌ (C++) (0) | 2022.01.05 |
---|---|
[๋ฐฑ์ค 1011] Fly me to the Alpha Centauri (C++) (0) | 2021.12.02 |
[๋ฐฑ์ค 1065] ํ์ (C++) (0) | 2021.12.01 |
[๋ฐฑ์ค 1541] ์์ด๋ฒ๋ฆฐ ๊ดํธ(C++) (0) | 2021.08.13 |
[๋ฐฑ์ค 1676]- ํฉํ ๋ฆฌ์ผ 0์ ๊ฐ์(C++) (0) | 2021.07.30 |
๋๊ธ