본문 바로가기
코딩테스트 준비/백준 C#

백준C# - 16194 +) 풀이

by 코딩하는 돼징 2023. 12. 1.
반응형

이 문제를 풀기 앞서 아래 문제를 먼저 풀어보는 것을 추천한다.

백준 C# - 11052

 

백준 C# - 11052 +) 풀이

DP를 이용해서 풀어야한다. DP알아보러 가기 C# - 다이나믹 프로그래밍(DP) 다이나믹 프로그래밍 메모리를 적절히 사용하여 수행 시간 효율성을 향상 시키는 최적화 기법중 하나이다. 큰 문제를 작

code-piggy.tistory.com


11052번을 풀었음을 전제로 풀이를 진행

01 Max를 Min으로 바뀌어서 제출

문제에서 최솟값을 구하니까 Max를 Min로 제출하면 되겠다 싶어서 바꿨더니 결과가 0으로만 나왔다.

p[i] = Math.Max(dp[i], dp[i - j] + p[j]);

02 기준값을 잡자

1씩 더해지는 경우를 기준으로 잡았다.

dp[i] = dp[i-1] + p[1];


코드 전문

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++)
            {
                dp[i] = dp[i-1] + p[1];
                for(int j = 1; j<=i; j++)
                {
                    dp[i] = Math.Min(dp[i - j] + p[j],dp[i]);
                }
            }
            Console.Write(dp[num]);

        }
    }
}

 

 

 

 

반응형

'코딩테스트 준비 > 백준 C#' 카테고리의 다른 글

백준 C# - 10844 +)풀이  (0) 2023.12.02
백준 C# - 2193 +) 풀이  (0) 2023.12.02
백준 C# - 11052 +) 풀이  (0) 2023.11.30
백준 C# - 9095 +)풀이  (0) 2023.11.30
백준C# - 11727 +) 풀이  (0) 2023.11.30

댓글