Загрузка...

Поиск опасности

  • Нормальная
  • Не решено

Дано

Вы работаете в технологическом стартапе, который создает роботов для исследования неизведанных территорий. Последняя модель робота оснащена 2D-матричным датчиком для обнаружения препятствий и опасностей на своем пути.

Задача

Ваша задача - написать функцию, которая принимает данные с датчика, представленные в виде 2D-матрицы из 0 и 1, и подсчитывает количество изолированных областей в матрице.

Изолированная область определяется как группа смежных 1, которые не связаны ни с какой другой группой смежных 1, и представляет собой препятствие или опасность, которую робот должен обойти. 1 считаются смежными если их координаты отличаются не более, чем на единицу по оси X и/или Y.

Ваша функция должна возвращать количество изолированных областей, обнаруженных в данных датчика, чтобы робот мог избежать их и безопасно продолжить исследование.

Напишите функцию hazards_count, которая принимает на вход матрицу с числами 0 и 1 и возвращает количество опасностей.

Пример

a = [ [0, 0, 0, 0], [0, 1, 1, 0], [0, 1, 1, 0], [0, 0, 0, 0] ] hazards_count(a) # 1 a = [ [0, 0, 0, 1], [0, 1, 1, 0], [0, 1, 1, 0], [0, 0, 0, 0] ] hazards_count(a) # 1 # единицы по диагонали отличаются на единицу по оси X и Y, потому считаются смежной областью a = [ [1, 0, 0, 1], [1, 0, 1, 0], [1, 0, 1, 0], [1, 0, 0, 1] ] hazards_count(a) # 2
133 / 164