[2217] 로프

RudinP·2023년 4월 21일
0

BaekJoon

목록 보기
55/77

생각

n개를 고른다면 n개의 수 중 가장 작은 수 n을 한 값이 최대 중량인데, 주의할 점은 모든 로프를 사용하지 않아도 된다는 점이다.
즉, k개를 선택했다면 k개의 수 중 가장 작은 수
k 가 최대 중량이다.
n은 최대 10만개다.
1) 정렬한다
2) max = array[i] (n - i) > max ? array[i] (n - i) : max;
3) 끝

처음 코드

namespace Program
{
    class Program
    {
        static void Main(string[] args)
        {
            using var input = new System.IO.StreamReader(Console.OpenStandardInput());
            using var print = new System.IO.StreamWriter(Console.OpenStandardOutput());

            int intInput() => int.Parse(input.ReadLine());

            int n = intInput();
            int[] array = new int[n];

            for(int i = 0; i < n; i++)
            {
                array[i] = intInput();
            }

            Array.Sort(array);

            int max = 0;

            for(int i = 0; i < n; i++)
            {
                max = array[i] * (n - i) > max ? array[i] * (n - i) : max; 
            }

            print.WriteLine(max);

        }
    }
}

profile
곰을 좋아합니다. <a href = "https://github.com/RudinP">github</a>

0개의 댓글