본문 바로가기
알고리즘/백준 BOJ

[ BOJ/C# ] 11399 ATM

by 왹져박사 2023. 9. 16.
728x90

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

 

11399번: ATM

첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000)

www.acmicpc.net

문제를 잘 분석해 보면 시간의 오름차순으로 계산했을 경우 최소 시간이 나온다는 것을 알 수 있다. 

나는 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();
        }
    }
}

728x90

'알고리즘 > 백준 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