백준 알고리즘/다이나믹 프로그래밍75 백준 2240번 C++ #include #include #include using namespace std; const int MAX = 1001; int t, w; int fruit[MAX]; int cache[MAX][31][3]; int maxfruit(int i,int move, int tree) { if (i == t) return 0; int &answer = cache[i][move][tree]; if (answer != -1) return answer; if (tree == fruit[i]) { if (move < w) answer = max(maxfruit(i + 1, move, tree) + 1, maxfruit(i + 1, move + 1, 3 - tree)); else answer = maxfruit(i .. 2019. 8. 22. 백준 11052번 C++ #include #include using namespace std; const int MAX = 1001; int n; int card[MAX]; int calmaxcost() { for (int i = 2; i = j / 2; j--) { card[i] = max(card[i], card[i - j]+ card[j]); } } return card[n]; } int main(void) { cin >> n; for (int i = 1; i > card[i]; cout 2019. 8. 21. 백준 11054번 C++ 2019. 8. 6. 백준 1038번 C++ 2019. 8. 6. 이전 1 2 3 4 5 6 ··· 19 다음