Skip to content

Commit 68e272b

Browse files
committed
Challenge 16 solved
1 parent e0611d1 commit 68e272b

File tree

4 files changed

+53
-14
lines changed

4 files changed

+53
-14
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ Resolución de 25 retos javascript del juego [adventJS](https://adventjs.dev/) p
2121
| 13 | [Envuelve regalos con asteriscos](challenges/13/) | Fácil | [Mostrar](challenges/13/solution.js) |
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) |
24-
| 16 | [Descifrando los números...](challenges/16/) | Fácil | |
24+
| 16 | [Descifrando los números...](challenges/16/) | Fácil | [Mostrar](challenges/16/solution.js) |
2525
| 17 | [La locura de enviar paquetes en esta época](challenges/17/) | Difícil ||
2626
| 18 | [El sistema operativo de Santa Claus](challenges/18/) | Fácil ||
2727
| 19 | [¿Qué deberíamos aprender en Platzi?](challenges/19/) | Normal ||

challenges/16/README.md

+15-12
Original file line numberDiff line numberDiff line change
@@ -22,19 +22,22 @@ Lara, además, ha notado una cosa. **Los símbolos se restan si están inmediata
2222
Tenemos que crear una función que nos pasa una cadena de texto con símbolos y tenemos que transformarlo al número correcto. ¡Ojo! Si encuentras un símbolo que no entendemos, mejor que devolvamos un `NaN`:
2323

2424
```javascript
25-
decodeNumbers('...'); // 3
26-
decodeNumbers('.,'); // 4 (5 - 1)
27-
decodeNumbers(',.'); // 6 (5 + 1)
28-
decodeNumbers(',...'); // 8 (5 + 3)
29-
decodeNumbers('.........!'); // 107 (1 + 1 + 1 + 1 + 1 + 1 + 1 - 1 + 100)
30-
decodeNumbers('.;'); // 49 (50 - 1)
31-
decodeNumbers('..,'); // 5 (-1 + 1 + 5)
32-
decodeNumbers('..,!'); // 95 (1 - 1 - 5 + 100)
33-
decodeNumbers('.;!'); // 49 (-1 -50 + 100)
34-
decodeNumbers('!!!'); // 300
35-
decodeNumbers(';!'); // 50
36-
decodeNumbers(';.W'); // NaN
25+
decodeNumbers('...') // 3
26+
decodeNumbers('.,') // 4 (5 - 1)
27+
decodeNumbers(',.') // 6 (5 + 1)
28+
decodeNumbers(',...') // 8 (5 + 3)
29+
decodeNumbers('.........!') // 107 (1 + 1 + 1 + 1 + 1 + 1 + 1 - 1 + 100)
30+
decodeNumbers('.;') // 49 (50 - 1)
31+
decodeNumbers('..,') // 5 (-1 + 1 + 5)
32+
decodeNumbers('..,!') // 95 (1 - 1 - 5 + 100)
33+
decodeNumbers('.;!') // 49 (-1 -50 + 100)
34+
decodeNumbers('!!!') // 300
35+
decodeNumbers(';!') // 50
36+
decodeNumbers(';.W') // NaN
3737
```
3838

39+
## Solución aceptada
40+
41+
![Solución aceptada](./solution.png)
3942

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

challenges/16/solution.js

+37-1
Original file line numberDiff line numberDiff line change
@@ -1 +1,37 @@
1-
// Solution challenge 16
1+
function decodeNumber(symbols) {
2+
const symbolsArray = symbols.split('')
3+
const symbolsValues = { '.': 1, ',': 5, ':': 10, ';': 50, '!': 100 }
4+
let decodedNumber = 0
5+
6+
symbolsArray.forEach((symbol, index) => {
7+
const currentSymbolValue = symbolsValues[symbol]
8+
const nextSymbolValue = symbolsValues[symbolsArray[index + 1]]
9+
10+
if (symbolsArray.length - 1 === index) {
11+
decodedNumber += currentSymbolValue
12+
}
13+
14+
if (currentSymbolValue >= nextSymbolValue) {
15+
decodedNumber += currentSymbolValue
16+
}
17+
18+
if (currentSymbolValue < nextSymbolValue) {
19+
decodedNumber -= currentSymbolValue
20+
}
21+
})
22+
23+
return decodedNumber
24+
}
25+
26+
console.log(decodeNumber('...')) // 3
27+
console.log(decodeNumber('.,')) // 4 (5 - 1)
28+
console.log(decodeNumber(',.')) // 6 (5 + 1)
29+
console.log(decodeNumber(',...')) // 8 (5 + 3)
30+
console.log(decodeNumber('.........!')) // 107 (1 + 1 + 1 + 1 + 1 + 1 + 1 - 1 + 100)
31+
console.log(decodeNumber('.;')) // 49 (50 - 1)
32+
console.log(decodeNumber('..,')) // 5 (-1 + 1 + 5)
33+
console.log(decodeNumber('..,!')) // 95 (1 - 1 - 5 + 100)
34+
console.log(decodeNumber('.;!')) // 49 (-1 -50 + 100)
35+
console.log(decodeNumber('!!!')) // 300
36+
console.log(decodeNumber(';!')) // 50
37+
console.log(decodeNumber(';.W')) // NaN

challenges/16/solution.png

142 KB
Loading

0 commit comments

Comments
 (0)