-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathReto #11.js
More file actions
82 lines (65 loc) · 2.02 KB
/
Reto #11.js
File metadata and controls
82 lines (65 loc) · 2.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
/**
* Reto #11: 📹 Regalos sin vigilancia
*
* El grinch quiere robar los regalos de Navidad del almacén. Para ello necesita saber qué regalos no tienen vigilancia.
El almacén se representa como un array de strings (string[]), donde cada regalo (*) está protegido si su posición está junto a una cámara (#).
Cada espacio vacío se representa con un punto (.).
Tu tarea es contar cuántos regalos están sin vigilancia, es decir, que no tienen ninguna cámara adyacente (arriba, abajo, izquierda o derecha).
Ten en cuenta: solo se considera como "adyacente" las 4 direcciones cardinales, no en diagonal.
Los regalos en las esquinas o bordes pueden estar sin vigilancia, siempre que no tengan cámaras directamente al lado.
Ejemplos:
*/
console.log(findUnsafeGifts([
'.*.',
'*#*',
'.*.'
])) // ➞ 0
// Todos los regalos están junto a una cámara
console.log(findUnsafeGifts([
'...',
'.*.',
'...'
])) // ➞ 1
// Este regalo no tiene cámaras alrededor
console.log(findUnsafeGifts([
'*.*',
'...',
'*#*'
])) // ➞ 2
// Los regalos en las esquinas superiores no tienen cámaras alrededor
console.log(findUnsafeGifts([
'.....',
'.*.*.',
'..#..',
'.*.*.',
'.....'
])) // ➞ 4
// Los cuatro regalos no tienen cámaras, porque están en diagonal a la cámara
console.log(findUnsafeGifts([
'*.*',
'*.#',
'*.*'
])) // ➞ 3
// Los dos de las esquinas derechas comparten camara
/**
* @param {string[]} warehouse - The warehouse layout
* @returns {number} The count of unwatched gifts
*/
function findUnsafeGifts(warehouse) {
let unsafe = 0;
for(let i = 0; i< warehouse.length;i++)
{
for(let j = 0; j < warehouse[i].length; j++)
{
if(warehouse[i][j]==='*'){
const cameraDetected =
warehouse[i - 1]?.[j] === '#' ||
warehouse[i + 1]?.[j] === '#' ||
warehouse[i]?.[j - 1] === '#' ||
warehouse[i]?.[j + 1] === '#';
if(!cameraDetected) unsafe++;
}
}
}
return unsafe;
}