Instrucciones
Ya hemos empaquetado cientos de regalos 🎁… pero a un elfo se le ha olvidado revisar si el regalo, representado por un asterisco *, está dentro de la caja.
La caja tiene un regalo (*) y cuenta como dentro de la caja si:
- Está rodeada por # en los bordes de la caja.
- El * no está en los bordes de la caja.
Ten en cuenta entonces que el * puede estar dentro, fuera o incluso no estar. Y debemos devolver true si el * está dentro de la caja y false en caso contrario.
Ejemplos:
inBox([
"###",
"#*#",
"###"
]) // ➞ true
inBox([
"####",
"#* #",
"# #",
"####"
]) // ➞ true
inBox([
"#####",
"# #",
"# #*",
"#####"
]) // ➞ false
inBox([
"#####",
"# #",
"# #",
"# #",
"#####"
]) // ➞ false
function inBox(box) {
const y = box.findIndex(b => b.includes("*"))
const x = box[y]?.indexOf("*")
const positions = [
box[y - 1]?.[x],
box[y]?.[x + 1],
box[y + 1]?.[x],
box[y]?.[x - 1]
]
return positions.every(pos => pos)
}
Puntaje: 🌟🌟🌟🌟🌟
2114 ops/s
Complejidad cognitiva: 3