Contar elementos

Escribe una función que cuente el número de elementos separados en la región.

Entrada

Una matriz rectangular, una lista de listas, con ceros y unos en cada celda. Un elemento conectado es una colección de unos que comparten el borde mediante un lado. Los elementos separados no se tocan entre sí, ni siquiera por una esquina. Los elementos no tienen huecos.

Salida

El número de elementos separados.

Ejemplos

region = [
  [0, 0, 0, 0, 0, 0, 0],
  [0, 0, 1, 0, 1, 1, 0],
  [0, 1, 1, 0, 1, 0, 0],
  [0, 0, 0, 0, 1, 1, 0],
  [0, 1, 1, 0, 1, 1, 0],
  [0, 0, 0, 0, 0, 0, 0],
]

count_shapes(region) ➞ 3

Notas

  • Puedes aprender a localizar diferentes elementos en la serie Chain Reaction.
  • Se tardan hasta 4 segundos en ensamblar las regiones de entrada de las pruebas. Las soluciones con una complejidad de O(rows * columns) nos permiten superar las pruebas en los 8 segundos restantes (3.5 segundos son suficientes).
  • El objetivo principal de este desafío es encontrar una solución eficiente.