Esta é uma sequência direta de Reação em cadeia (Parte #2), que era um caso particular mais simples deste desafio (minha sugestão é tentar aquela primeiro).
Assim como na parte anterior, você receberá uma matriz retangular que representa um "mapa" com três tipos de espaços:
O objetivo é simples: dado um mapa, retorne o número mínimo de bombas que precisam ser detonadas para que todas as bombas sejam destruídas pela reação em cadeia.
Vamos ver alguns exemplos:
[["+", "x"]]Para o mapa acima, a resposta é 1: para explodir as duas bombas, pode-se escolher a bomba '+'. No entanto, observe que escolher a bomba 'x' não funciona.
[
["+", "0", "x"],
["x", "x", "x"]
]Para o mapa acima, a resposta é 2: pode-se escolher as duas bombas 'x' da coluna da direita ou as bombas 'x' central e da direita na linha inferior. Nenhuma outra escolha funcionará.
[
["x", "x", "x"],
["x", "+", "x"],
["x", "x", "x"]
]Para o mapa acima, a resposta é 4: escolha as quatro bombas 'x' nos cantos. Nenhuma outra escolha funciona.
[
["x", "x", "+"],
["+", "0", "+"],
["+", "x", "x"]
]Para o mapa acima, a resposta é 1: qualquer bomba, exceto as bombas "x" no canto superior esquerdo e no canto inferior direito, funcionará.
min_bombs_needed([
["+", "x"]
]) ➞ 1
min_bombs_needed([
["+", "0", "x"],
["x", "x", "x"]
]) ➞ 2
min_bombs_needed([
["x", "x", "x"],
["x", "+", "x"],
["x", "x", "x"]
]) ➞ 4
min_bombs_needed([
["x", "x", "+"],
["+", "0", "+"],
["+", "x", "x"]
]) ➞ 1