Поиск опасности
- Не решено
Дано
Вы работаете в технологическом стартапе, который создает роботов для исследования неизведанных территорий. Последняя модель робота оснащена 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