Элементы с максимальной и минимальной суммой цифр

С клавиатуры вводится кол-во элементов массива и сам массив чисел. Размер массива не больше 100 элементов. Нужно вывести элемент с минимальной суммой цифр в одну строку(если таких несколько, вывести минимальный из них). А во вторую, элемент с максимальной суммой цифр(если таких несколько, вывести максимальный из них)

В примере ниже: 11(1+1=2); 21(2+1=3); 111(1+1+1=3), 2-минимальная сумма, 3-максимальная, но т.к. элементов с суммой цифр равной 3м-два, то выводится максимальный из них т.е. 111

Подскажите, пожалуйста, алгоритм действий, поскольку у меня даже нет идей как выполнить поставленную задачу

Я знаю как найти сумму цифр числа, но как из массива взять число для проверки(и при этом, в случае если чисел с минимальной/максимальной суммой несколько, определить какое из них стоит выводить)-не понимаю

Пример

Вход

3

11 21 111

Выход

11

111


Ответы (2 шт):

Автор решения: entithat
  1. Читаем длинну массива
  2. Читаем каждый элемент
  3. Ищем минимальный элемент в массиве a, где ключ - его сумма цифр
  4. Так же с максимальным.
n = input()
a = input().split()
    
def f(x):
    return sum(map(int, x if int(x) > 0 else x[1:])) - 0 if int(x) > 0 else int(x[1])

print(min(a, key=f))
print(max(a, key=f))
→ Ссылка
Автор решения: MaxU
def digits_sum(num):
    return sum([int(x) for x in str(num) if x.isdigit()])

items = ['11', '21', '111', '-1']

min_ = min((digits_sum(x), int(x)) for x in items)[1]
max_ = max((digits_sum(x), int(x)) for x in items)[1]
print(min_)
print(max_)

вывод на экран:

-1
111
→ Ссылка