Skip to content

Commit a8dd5f9

Browse files
committed
Challenge 17 solved
1 parent 68e272b commit a8dd5f9

File tree

4 files changed

+44
-8
lines changed

4 files changed

+44
-8
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ Resolución de 25 retos javascript del juego [adventJS](https://adventjs.dev/) p
2222
| 14 | [En busca del reno perdido](challenges/14/) | Normal | [Mostrar](challenges/14/solution.js) |
2323
| 15 | [El salto perfecto](challenges/15/) | Normal | [Mostrar](challenges/15/solution.js) |
2424
| 16 | [Descifrando los números...](challenges/16/) | Fácil | [Mostrar](challenges/16/solution.js) |
25-
| 17 | [La locura de enviar paquetes en esta época](challenges/17/) | Difícil | |
25+
| 17 | [La locura de enviar paquetes en esta época](challenges/17/) | Difícil | [Mostrar](challenges/17/solution.js) |
2626
| 18 | [El sistema operativo de Santa Claus](challenges/18/) | Fácil ||
2727
| 19 | [¿Qué deberíamos aprender en Platzi?](challenges/19/) | Normal ||
2828
| 20 | [¿Una carta de pangramas? ¡QUÉ!](challenges/20) | Fácil ||

challenges/17/README.md

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@ Para que lo veamos en código, tanto el array, como la función de dos parámetr
1919
const carriers = [
2020
['dapelu', 5, ['midu', 'jelowing']],
2121
['midu', 2, []],
22-
['jelowing', 2, []]
23-
];
22+
['jelowing', 2, []],
23+
]
2424

25-
countPackages(carriers, 'dapelu'); // 9
25+
countPackages(carriers, 'dapelu') // 9
2626
// 5 de dapelu, 2 de midu y 2 de jelowing = 9
2727

2828
const carriers2 = [
@@ -32,14 +32,17 @@ const carriers2 = [
3232
['sergiomartinez', 4, []],
3333
['conchaasensio', 3, ['facundocapua', 'faviola']],
3434
['facundocapua', 2, []],
35-
['faviola', 1, []]
36-
];
35+
['faviola', 1, []],
36+
]
3737

38-
countPackages(2, 'camila'); // 15
38+
countPackages(2, 'camila') // 15
3939
// 5 de camila, 4 de sergiomartinez, 3 de conchaasensio, 2 de facundocapua y 1 de faviola = 15
4040
```
4141

4242
**¡Ten cuidado!** Como has visto en el segundo ejemplo, **el organigrama puede tener diferentes niveles y además nos viene información que puede ser que no necesitemos**. Debemos tener en cuenta el parámetro de `carrierID` para calcular bien el número y contar todo su equipo.
4343

44+
## Solución aceptada
45+
46+
![Solución aceptada](./solution.png)
4447

4548
[Volver a la tabla de desafíos](/README.md)

challenges/17/solution.js

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,34 @@
1-
// Solution challenge 17
1+
function countPackages(carriers, carrierID) {
2+
let packages = 0
3+
4+
const carrier = carriers.find((carrier) => carrier[0] === carrierID)
5+
packages += carrier[1]
6+
7+
carrier[2].forEach((childCarrier) => {
8+
packages += countPackages(carriers, childCarrier)
9+
})
10+
11+
return packages
12+
}
13+
14+
const carriers = [
15+
['dapelu', 5, ['midu', 'jelowing']],
16+
['midu', 2, []],
17+
['jelowing', 2, []],
18+
]
19+
20+
console.log(countPackages(carriers, 'dapelu')) // 9
21+
// 5 de dapelu, 2 de midu y 2 de jelowing = 9
22+
23+
const carriers2 = [
24+
['lolivier', 8, ['camila', 'jesuspoleo']],
25+
['camila', 5, ['sergiomartinez', 'conchaasensio']],
26+
['jesuspoleo', 4, []],
27+
['sergiomartinez', 4, []],
28+
['conchaasensio', 3, ['facundocapua', 'faviola']],
29+
['facundocapua', 2, []],
30+
['faviola', 1, []],
31+
]
32+
33+
console.log(countPackages(carriers2, 'camila')) // 15
34+
// 5 de camila, 4 de sergiomartinez, 3 de conchaasensio, 2 de facundocapua y 1 de faviola = 15

challenges/17/solution.png

138 KB
Loading

0 commit comments

Comments
 (0)