백준의 Generation of Tribbles(9507) 문제이다.
[ 문제 바로가기 ]
[ 문제풀이 ]
1) 사실 이 문제를 풀 때, 뭘 구현해야되는 문제인지 잘 몰랐었다... 문제에 답이 주어져있어서 혹여나 재귀를 DP로 바꿔봤는데
맞았습니다를 받았다...
문제에서 주어진 재귀 방식을 DP로 바꾸기만 하면 끝 !
[ 소스코드 ]
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 53 54 55 56 57 | #include<iostream> #include<cstring> typedef long long ll; #define endl "\n" #define MAX 68 using namespace std; int N; ll DP[MAX]; void Initialize() { memset(DP, 0, sizeof(DP)); } void Input() { cin >> N; } void Solution() { DP[0] = 1; DP[1] = 1; DP[2] = 2; DP[3] = 4; for (int i = 4; i <= N; i++) { DP[i] = DP[i - 1] + DP[i - 2] + DP[i - 3] + DP[i - 4]; } cout << DP[N] << endl; } void Solve() { int Tc; cin >> Tc; for (int T = 1; T <= Tc; T++) { Initialize(); Input(); Solution(); } } int main(void) { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); //freopen("Input.txt", "r", stdin); Solve(); return 0; } | cs |
'[ BOJ Code ] > # BOJ -' 카테고리의 다른 글
[ 백준 2186 ] 문자판 (C++) (6) | 2019.03.10 |
---|---|
[ 백준 1197 ] 최소 스패닝 트리 (C++) (5) | 2019.03.04 |
[ 백준 1647 ] 도시 분할 계획 (C++) (0) | 2019.03.04 |
[ 백준 1922 ] 네트워크 연결 (C++) (0) | 2019.03.03 |
[ 백준 7568 ] 덩치 (C++) (0) | 2019.02.20 |