UniLecs #156. Непростая сортировка - 2

UniLecs #156. Непростая сортировка - 2

UniLecs

Задача: дан массив натуральных чисел. Необходимо отсортировать массив по возрастанию суммы цифр чисел. 

Входные данные: arr - массив натуральных чисел от 1 до 10^6. Размер массива от 1 до 10^6.

Вывод: отсортированный массив по возрастанию суммы цифр чисел.

Пример: arr = [ 19, 22, 30 ]

Answer = [ 30, 22, 19 ],

т.к. 19 (сумма цифр = 10), 22 (сумма цифр = 4), 30 (сумма цифр = 3) 

Идея: в данной задаче нам необходима особенная сортировка, а именно особенное условие при сравнении элементов. Сравнивать будем сумму цифр числа, выполним эту операцию в отдельной функции.

Саму сортировку в данном случае можно выбрать любую. В своей реализации на C# я воспользовался встроенной функцией сортировки, позволяющей добавить свою кастомную проверку элементов. Детали реализации смотри ниже.

Реализация:

C#

https://gist.github.com/unilecs/cafa43ee7cffa0620cbb9281fd7b101f

Play-test: https://dotnetfiddle.net/BTwZ7Q

Report Page