[BAEKJOON] 백준 28281: 선물 (C#)

2024. 6. 19. 14:28IT/BaekJoon

문제 링크

https://www.acmicpc.net/problem/28281

 

 

문제

 𝑁일 뒤는 동원이의 생일이다. 축하해 주자!

준원이는 동원이에게 생일 선물로 양말을 2𝑋개 선물하려 한다. 양말은 시장에서 살 것이다. 연속한 이틀에 걸쳐서, 준원이는 매일 시장에서 양말을 𝑋개씩 사서 트럭에 담아올 것이다.

시장에서 양말의 가격은 날마다 다를 수 있다. 오늘부터 𝑖번째 날에, 양말은 하나에 𝐴𝑖원이다.

동원이의 생일까지 𝑁일 남았다! 남은 𝑁일 가운데 연속한 이틀에 걸쳐 양말 2𝑋개를 사는 데 드는 최소 비용은?

 

 

입력

첫째 줄에 𝑁과 𝑋가 공백을 사이에 두고 주어진다.

둘째 줄에 𝑁일간 양말의 가격 𝐴1,𝐴2,⋯,𝐴𝑁이 공백을 사이에 두고 주어진다.

 

 

출력

연속한 이틀에 걸쳐 하루에 양말을 𝑋개씩 구매하는 방법으로, 양말 2𝑋개를 사는 데 드는 최소 비용을 출력한다.

제한

  •  2≤𝑁≤100000 
  •  1≤𝑋≤1000000
  •  1≤𝐴𝑖≤1000 (1≤𝑖≤𝑁)

 

 

 

통과한 답안

namespace _28281
{
    internal class Program
    {
        static void Main(string[] args)
        {
            string[] inputs = Console.ReadLine().Split(' ');
            int N = int.Parse(inputs[0]);
            int X = int.Parse(inputs[1]);
            int[] prices = Console.ReadLine().Split(' ').Select(int.Parse).ToArray();
            int minPrice = int.MaxValue;

            for (int i = 0; i < prices.Length - 1; i++)
            {
                int nowPrice = (prices[i] + prices[i + 1]);
                if (nowPrice < minPrice)
                {
                    minPrice = nowPrice;
                }
            }

            Console.WriteLine(minPrice * X);
        }
    }
}

 

매일 양말의 가격이 달라지는데 N일 후에 2 * X개의 양말을 준비하려고 한다.

또, 양말은 연속해서 X개를 살 수 있다.

이 경우에 양말을 사는데 드는 최소 비용을 구하는 문제이다.

 

for 문을 이용하여 연속된 이틀의 가격 중 최소가를 찾은 후에

이를 X를 곱해서 출력하도록 구현하였다.