Skip to content

Commit d25da57

Browse files
committed
Challenge 22 solved
1 parent 697c986 commit d25da57

File tree

4 files changed

+85
-16
lines changed

4 files changed

+85
-16
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ Resolución de 25 retos javascript del juego [adventJS](https://adventjs.dev/) p
2727
| 19 | [¿Qué deberíamos aprender en Platzi?](challenges/19/) | Normal | [Mostrar](challenges/19/solution.js) |
2828
| 20 | [¿Una carta de pangramas? ¡QUÉ!](challenges/20) | Fácil | [Mostrar](challenges/20/solution.js) |
2929
| 21 | [La ruta con los regalos](challenges/21/) | Difícil | [Mostrar](challenges/21/solution.js) |
30-
| 22 | [¿Cuántos adornos necesita el árbol?](challenges/22/) | Normal | |
30+
| 22 | [¿Cuántos adornos necesita el árbol?](challenges/22/) | Normal | [Mostrar](challenges/22/solution.js) |
3131
| 23 | [¿Puedes reconfigurar las fábricas para no parar de crear regalos?](challenges/23/) | Muy difícil ||
3232
| 24 | [Comparando árboles de Navidad](challenges/24/) | Normal ||
3333
| 25 | [El último juego y hasta el año que viene 👋](challenges/25/) | Normal ||

challenges/22/README.md

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,14 @@ const tree = {
1515
left: {
1616
value: 2, // el nodo izquierdo necesita dos decoraciones
1717
left: null, // no tiene más ramas
18-
right: null // no tiene más ramas
18+
right: null, // no tiene más ramas
1919
},
2020
right: {
2121
value: 3, // el nodo de la derecha necesita tres decoraciones
2222
left: null, // no tiene más ramas
23-
right: null // no tiene más ramas
24-
}
25-
};
23+
right: null, // no tiene más ramas
24+
},
25+
}
2626

2727
/* Gráficamente sería así:
2828
1
@@ -32,7 +32,7 @@ const tree = {
3232
1 + 2 + 3 = 6
3333
*/
3434

35-
countDecorations(tree); // 6
35+
countDecorations(tree) // 6
3636

3737
const bigTree = {
3838
value: 1,
@@ -43,26 +43,26 @@ const bigTree = {
4343
left: {
4444
value: 3,
4545
left: null,
46-
right: null
46+
right: null,
4747
},
48-
right: null
48+
right: null,
4949
},
50-
right: null
50+
right: null,
5151
},
5252
right: {
5353
value: 6,
5454
left: {
5555
value: 5,
5656
left: null,
57-
right: null
57+
right: null,
5858
},
5959
right: {
6060
value: 1,
6161
left: null,
62-
right: null
63-
}
64-
}
65-
};
62+
right: null,
63+
},
64+
},
65+
}
6666

6767
/*
6868
1
@@ -74,10 +74,13 @@ const bigTree = {
7474
3
7575
*/
7676

77-
countDecorations(bigTree); // 28
77+
countDecorations(bigTree) // 28
7878
```
7979

8080
Por cierto, Bellf Gates me ha contado que este tipo de ejercicio es muy típico en las entrevistas de trabajo para programadores. ¿Lo sabías?
8181

82+
## Solución aceptada
83+
84+
![Solución aceptada](./solution.png)
8285

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

challenges/22/solution.js

Lines changed: 67 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,67 @@
1-
// Solution challenge 22
1+
function countDecorations(bigTree) {
2+
let decorations = 0
3+
4+
decorations += bigTree.value
5+
bigTree.left ? (decorations += countDecorations(bigTree.left)) : null
6+
bigTree.right ? (decorations += countDecorations(bigTree.right)) : null
7+
8+
return decorations
9+
}
10+
11+
const tree = {
12+
value: 1, // el nodo raíz siempre es uno, porque es la estrella ⭐
13+
left: {
14+
value: 2, // el nodo izquierdo necesita dos decoraciones
15+
left: null, // no tiene más ramas
16+
right: null, // no tiene más ramas
17+
},
18+
right: {
19+
value: 3, // el nodo de la derecha necesita tres decoraciones
20+
left: null, // no tiene más ramas
21+
right: null, // no tiene más ramas
22+
},
23+
}
24+
25+
console.log(countDecorations(tree)) // 6
26+
27+
const bigTree = {
28+
value: 1,
29+
left: {
30+
value: 5,
31+
left: {
32+
value: 7,
33+
left: {
34+
value: 3,
35+
left: null,
36+
right: null,
37+
},
38+
right: null,
39+
},
40+
right: null,
41+
},
42+
right: {
43+
value: 6,
44+
left: {
45+
value: 5,
46+
left: null,
47+
right: null,
48+
},
49+
right: {
50+
value: 1,
51+
left: null,
52+
right: null,
53+
},
54+
},
55+
}
56+
57+
/*
58+
1
59+
/ \
60+
5 6
61+
/ / \
62+
7 5 1
63+
/
64+
3
65+
*/
66+
67+
console.log(countDecorations(bigTree)) // 28

challenges/22/solution.png

131 KB
Loading

0 commit comments

Comments
 (0)