https://www.acmicpc.net/problem/11399
문제를 잘 분석해 보면 시간의 오름차순으로 계산했을 경우 최소 시간이 나온다는 것을 알 수 있다.
나는 list로 오름차순으로 정렬한 뒤, 누적되는 시간을 다시 한번 누적하여 최종 최소 시간을 구하였다.
using System;
namespace B11399
{
class Program
{
static void Main()
{
StreamReader sr = new StreamReader(Console.OpenStandardInput());
StreamWriter sw = new StreamWriter(Console.OpenStandardOutput());
int n = int.Parse(sr.ReadLine());
int[] array = Array.ConvertAll(sr.ReadLine().Split(' '), int.Parse);
List<int> list = new List<int>();
for(int i = 0; i < n; i++) list.Add(array[i]);
list.Sort();
int index = 0;
int time = 0;
int minTime = 0;
while (index < n)
{
time += list[index];
minTime += time;
index++;
}
sw.Write(minTime);
sr.Close();
sw.Flush();
sw.Close();
}
}
}
'알고리즘 > 백준 BOJ' 카테고리의 다른 글
[ BOJ/C# ] 11723 집합 (0) | 2023.09.18 |
---|---|
[ BOJ/C# ] 17219 비밀번호 찾기 (0) | 2023.09.16 |
[ BOJ/C# ] 11047 동전 0 (0) | 2023.09.15 |
[ BOJ/C# ] 2577 숫자의 개수 (0) | 2023.09.14 |
[ BOJ/C# ] 10818 최소, 최대 (0) | 2023.09.13 |