-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathReto #20.js
More file actions
110 lines (96 loc) · 1.75 KB
/
Reto #20.js
File metadata and controls
110 lines (96 loc) · 1.75 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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
/**
* Reto #20: 🎁 El almacén vertical
*
* En el taller de Santa, los elfos están guardando regalos 🎁 en un almacén vertical. Los regalos se dejan caer uno a uno por una columna y se van apilando.
El almacén es una matriz con # regalos y . espacios vacíos. Debes crear una función dropGifts que reciba el estado del almacén y un array con las columnas donde se dejan caer los regalos.
Reglas de la caída:
El regalo cae por la columna indicada desde arriba.
Se coloca en la celda vacía (.) más baja de esa columna.
Si la columna está llena, el regalo se ignora.
*/
console.log(dropGifts(
[
['#', '#']
],
[0, 0]
));
console.log(dropGifts(
[
['.', '.', '.'],
['.', '#', '.'],
['#', '#', '.']
],
[0]
));
/*
[
['.', '.', '.'],
['#', '#', '.'],
['#', '#', '.']
]
*/
console.log(dropGifts(
[
['.', '.', '.'],
['#', '#', '.'],
['#', '#', '#']
],
[0, 2]
));
/*
[
['#', '.', '.'],
['#', '#', '#'],
['#', '#', '#']
]
*/
console.log(dropGifts(
[
['.', '.', '.'],
['.', '.', '.'],
['.', '.', '.']
],
[0, 1, 2]
));
/*
[
['.', '.', '.'],
['.', '.', '.'],
['#', '#', '#']
]
*/
console.log(dropGifts(
[
['.', '#'],
['.', '#']
],
[0, 0]
));
/*
[
['#', '#']
['#', '#']
]
*/
/*
[
['#', '#']
]
*/
/**
* @param {string[][]} warehouse
* @param {number[]} drops
* @returns {string[][]}
*/
function dropGifts(warehouse, drops) {
for (const col of drops){
for(let i = warehouse.length - 1; i >= 0; i--){
if(warehouse[i][col] === '.')
{
warehouse[i][col] = '#';
break;
}
}
}
return warehouse;
}