카테고리 없음

[C] 백준 - 11052번: 카드 구매하기

C0MPAS 2024. 4. 29. 17:11

4월 29일(월) - 다이나믹 프로그래밍 (11052번)

 


최초 생각 정리


문제점


풀이

#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable: 4996)

#include <stdio.h>

int cards[1001];
int dp[1001];

int MAX(int x, int y)
{
	return ((x > y) ? (x) : (y));
}

int main(void)
{
	int N;
	scanf("%d", &N);
	for (int i = 1; i <= N; i++)
	{
		scanf("%d", &cards[i]);
	}

	for (int i = 1; i <= N; i++)
	{
		for (int j = 1; j <= i; j++)
		{
			dp[i] = MAX(dp[i], dp[i - j] + cards[j]);
		}
	}

	printf("%d", dp[N]);
	return 0;
}