Задача: данные ростов 22 учеников в виде массива. Нужно посчитать, сколько ростов не превышают значения r.
Пояснение по решению
- Мы ищем количество элементов массива heights, которые удовлетворяют условию h <= r.
- Это можно сделать за один проход по массиву: увеличить счетчик каждый раз, когда элемент <= r.
- В Python это удобно реализовать через генератор в функции sum или через цикл.
Пошаговый алгоритм
- Получаем массив heights и порог r.
- Создаем счетчик count = 0.
- Для каждого роста h в heights:
- если h <= r, увеличиваем count на 1.
- Возвращаем count.
Решение на Python (вариант 1: функция)
def count_not_exceeding(heights, r):
return sum(1 for h in heights if h <= r)
Пример использования (для наглядности)
heights = [150, 162, 158, 170, 149, 155, 160, 163, 157, 152,
164, 149, 151, 156, 161, 159, 154, 148, 170, 165,
153, 150] # 22 элемента
r = 160
print(count_not_exceeding(heights, r)) # Результат: 15
Пояснение к примеру
- Из 22 чисел ровно 15 значений не превышают 160.
Решение без функции (однострочно)
heights = [150, 162, 158, 170, 149, 155, 160, 163, 157, 152,
164, 149, 151, 156, 161, 159, 154, 148, 170, 165,
153, 150]
r = 160
count = sum(1 for h in heights if h <= r)
print(count) # 15
Сложность
- Временная сложность: O(n), где n — количество элементов в heights (для 22 элементов — константно на практике).
- Дополнительной памяти не требуется (или O(1) в зависимости от реализации).
Если хочешь, могу подстроить под другой формат ввода (например, считывать heights и r из ввода пользователя) или показать решение с использованием numpy.