-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathReto #22.js
More file actions
67 lines (57 loc) · 1.47 KB
/
Reto #22.js
File metadata and controls
67 lines (57 loc) · 1.47 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
/**
* Reto #22: 🎄 El laberinto del trineo
*
* Papá Noel 🎅 está probando un nuevo simulador de trineo dentro de un laberinto en el taller. El
* laberinto se representa como una matriz de caracteres.
Tu tarea es implementar una función que determine si es posible llegar a la salida (E) partiendo desde
la posición inicial (S).
Reglas del laberinto:
S: Posición inicial de Santa.
E: Salida del laberinto.
.: Camino libre.
#: Pared (bloquea el paso).
Movimientos permitidos: arriba, abajo, izquierda y derecha.
Solo hay una S y una sola E.
A tener en cuenta:
No necesitas devolver el camino, solo si es posible llegar.
Santa no puede salir de los límites del laberinto.
Consejo: Este problema se puede resolver de varias formas, pero algoritmos de búsqueda
como BFS (búsqueda en anchura) o DFS (búsqueda en profundidad) son ideales para este tipo de retos.
*
* Ejemplos:
*/
canEscape([
['S', '.', '#', '.'],
['#', '.', '#', '.'],
['.', '.', '.', '.'],
['#', '#', '#', 'E']
])
// → true
canEscape([
['S', '#', '#'],
['.', '#', '.'],
['.', '#', 'E']
])
// → false
canEscape([['S', 'E']])
// → true
canEscape([
['S', '.', '.', '.', '.'],
['#', '#', '#', '#', '.'],
['.', '.', '.', '.', '.'],
['.', '#', '#', '#', '#'],
['.', '.', '.', '.', 'E']
])
// → true
canEscape([
['S', '.', '.'],
['.', '.', '.'],
['#', '#', '#'],
['.', '.', 'E']
])
// → false
/**
* @param {string[][]} maze
* @returns {boolean}
*/
function canEscape(maze) {}