C++/백준 C++

C++ 11052 카드 구매하기[DP]

CE : 하랑 2024. 10. 22. 15:03

 

 

 

 

코드

#include <iostream>
#include <vector>
#include <algorithm>

int main()
{
	std::vector<int> Cards;
	std::vector<int> DP;

	int N;

	std::cin >> N;

	Cards.resize(N+1);
	DP.resize(N+1);

	for (int i = 1; i <= N; i++)
	{
		std::cin >> Cards[i];
	}

	for (int i = 1; i < Cards.size(); i++)
	{
		for (int j = 1; j <= i; j++)
		{
			DP[i] = std::max(DP[i], DP[i - j] + Cards[j]);
		}
	}
	// 카드 1개 -> N
	// 카드 2개 -> N, (N-1)+1
	// 점화식 다시 봐보기

	std::cout << DP[N];
	return 0;
}