반응형
DP를 이용해서 풀어야한다.
DP알아보러 가기
풀이
점화식 찾기
01 손으로 적어보자
dp와 Pn과의 관계를 한 번 손으로 적어보면 아래와 같이 나오는 것을 확인할 수 있다.
02 점화식
위의 경우의수들 중 제일 큰 값을 골라서 dp[i]에 넣어주면 된다. 그러므로 점화식을 구해보면 아래와 같이 나온다.
코드 전문
using System;
namespace baek2
{
class Program
{
static void Main()
{
int num = int.Parse(Console.ReadLine());
string[] str = Console.ReadLine().Split();
int[] dp = new int[num + 2];
int[] p = new int[num + 2];
for(int i = 1; i<=str.Length;i++)
{
p[i] = int.Parse(str[i-1]);
}
for(int i = 1; i <= num ;i++)
{
for(int j = 1; j<=i; j++)
{
dp[i] = Math.Max(dp[i], dp[i - j] + p[j]);
}
}
Console.Write(dp[num]);
}
}
}
반응형
'코딩테스트 준비 > 백준 C#' 카테고리의 다른 글
백준 C# - 2193 +) 풀이 (0) | 2023.12.02 |
---|---|
백준C# - 16194 +) 풀이 (0) | 2023.12.01 |
백준 C# - 9095 +)풀이 (0) | 2023.11.30 |
백준C# - 11727 +) 풀이 (0) | 2023.11.30 |
백준 C# - 11726 +) 풀이 (0) | 2023.11.29 |
댓글