Here’s the example (counting black ones):
input:

output:
5 4 // 5 groups (4 squares each)
1 1 // 1 group containing 1 square
For Now, I can’t think of anything better than a painfull for iteration. Would it be possible to get these groups in a recursive way?
Thanks
Set all black squares as nodes. Connection between black squares (if the squares are next to each other) will be an edge.
This gives you a graph.
A DFS in the graph will get you all the groups. Note that DFS is recursive by nature.