Статья Автор: Деникина Н.В., Деникин А.В.

Сборка полного решения

Сборка решения

Сложная задача — это несколько знакомых деталей

Длинное условие не нужно переводить в код целиком. Сначала выдели частотный отпечаток, затем группы чисел, после этого сравнение и только в конце действие с ответом.

Микропаттерн: собирай сверху вниз. Каждая новая строка программы отвечает одной фразе условия.
Не импровизируй

Пять станций

Чтение → группы → структура → отношение → ответ.


Шаг 1
Прочитать строку

Получить список чисел и, если нужен номер, считай строки (n = n + 1, не забудь обнулить n перед циклов).

Шаг 2
Построить группы

rep, uniq, pair, triple или сигнатуру freq.

Шаг 3
Проверить структуру

Убедиться, что повторов ровно столько, сколько требует условие.

Шаг 4
Проверить отношение

Сравнить суммы, средние, экстремумы или порядок.

Шаг 5
Изменить ответ

Увеличить счётчик, сохранить номер, вывести сумму или прибавить значение.

  A:G H:N O P Q
строка числа count структура отношение ответ
Полное решение остаётся одной строкой таблицы: данные → частоты → два условия → ответ.

Полный пример

Две тройки, одно одиночное и последняя строка

Сигнатура такой строки — [1, 3, 3]. Среднее повторяющихся сравниваем с одиночным крест-накрест. Поскольку нужен наибольший номер, каждую подходящую строку просто записываем в answer.



Результат: последней проходит строка № 3.

Решение в электронной таблице

Полное решение в одной таблице

Служебные столбцы отдельно проверяют структуру двух троек и сравнивают среднее повторяющихся чисел со средним одиночных.

Исследуйте такие данные

Сравни первые две строки: структура совпадает, но средние расположены по-разному. Щёлкни по U и посмотри формулу сравнения.

V4
fx
Выбери ячейку — её значение или формула появится в строке fx. Исходные числа можно менять прямо в таблице.
  A B C D E F G H I J K L M N O P Q R S T U V
2 1 3 3 3 3 3 3 1 да 21 6 10 1 да 1
3 2 3 3 3 3 3 3 1 да 30 6 4 1 нет  
4 3 3 3 3 3 3 3 1 да 15 6 9 1 да 3
Служебная ячейка: строка формул показывает, как получен результат.
Наибольший номер подходящей строки: 3.

Расположи этапы решения в правильном порядке.


Проверка перед запуском
1Количество чисел в строке совпадает с условием.
2Точная схема повторов проверена.
3Знак сравнения и скобки перенесены буквально.
4Оператор ответа соответствует последней фразе.

Ловушки
Схему повторов заменили только количеством различных значений.
Сравнили суммы групп вместо средних.
Для наибольшего номера использовали счётчик подходящих строк.
Печать