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