Давайте разберёмся с задачей по шагам.
Условия задачи
Мы имеем определённое количество заметок, и для каждой из них даны название, имя автора и количество знаков. Нам нужно найти все названия заметок, написанных тем же автором, что и заметка с названием «Котики и география».
Шаг 1: Чтение входных данных
Мы начинаем с того, что вводим количество заметок ( N ). Поскольку у нас каждая заметка состоит из трёх строк (название, автор, количество знаков), общее количество строк, которые нам нужно прочитать, составляет ( 3N ).
Шаг 2: Сохранение информации о заметках
Мы можем хранить информацию о заметках в виде списка кортежей (или словарей) для удобства. Каждый кортеж будет содержать «название заметки», «имя автора» и «количество знаков».
Шаг 3: Поиск нужной заметки и авторов
После того как мы сохранили все данные, мы ищем заметку с названием «Котики и география» и запоминаем её автора. Затем мы проходим по всем заметкам ещё раз и выводим те, которые написаны этим же автором.
Шаг 4: Форматирование и вывод результата
Наконец, выводим названия всех найденных заметок.
Решение
Теперь напишем алгоритм для решения задачи на языке программирования Python.
# Шаг 1: Чтение входных данных
N = int(input().strip())
notes = []
for _ in range(N):
title = input().strip()
author = input().strip()
length = int(input().strip()) # это значение нам не понадобится, но мы его можем просто игнорировать
notes.append((title, author)) # сохраняем название и автора
# Шаг 2: Поиск автора заметки "Котики и география"
target_title = "Котики и география"
target_author = None
for title, author in notes:
if title == target_title:
target_author = author
break
# Шаг 3: Вывод всех заметок этого автора
if target_author:
result_titles = [title for title, author in notes if author == target_author]
print("\n".join(result_titles))
Объяснение кода:
- Мы начинаем с чтения количества заметок ( N ).
- Каждый раз, когда мы читаем название заметки, имя автора и количество знаков, мы добавляем только нужные данные (название и автора) в список
notes.
- В первом цикле
for мы ищем заметку с названием «Котики и география» и, если находим, сохраняем имя автора.
- Во втором цикле мы собираем все названия заметок, автор которых совпадает с найденным.
- Наконец, мы выводим все найденные названия заметок.
Этот подход достаточно эффективен для решения задачи и легко понимаем. Вы можете протестировать алгоритм с приведёнными вами примерами, и он должен работать правильно.