Skip to content

Commit 20799dd

Browse files
committed
🪜 added challenge 24: jump on the stairs
1 parent e7dd67d commit 20799dd

File tree

4 files changed

+467
-8
lines changed

4 files changed

+467
-8
lines changed

lib/rank.png

-178 Bytes
Loading

readme.md

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# Advent JS version 2023 🎄
22

3-
> [!NOTE]
4-
> Si este repositorio llega a 16+ estrellas, estaré desarrollando una librería
5-
> de npm para resolver los retos del [AdventJS](https://adventjs.dev/) 2023.
3+
> [!NOTE] Si este repositorio llega a 16+ estrellas antes de que termine el año,
4+
> estaré desarrollando una librería en npm para resolver los retos del
5+
> [AdventJS](https://adventjs.dev/) 2023 de manera local.
66
77
Soluciones bizarras a los retos del [AdventJS](https://adventjs.dev/) 2023.
88

@@ -14,8 +14,8 @@ estarán publicando retos en la página oficial del evento:
1414

1515
- https://adventjs.dev/
1616

17-
Los retos se pueden resolver tanto en JavaScript como en Typescript.
18-
Para esta versión estaré usando TypeScript, en su versión 5.3.2.
17+
Los retos se pueden resolver tanto en JavaScript como en Typescript. Para esta
18+
versión estaré usando TypeScript, en su versión 5.3.2.
1919

2020
## Retos 🎅
2121

@@ -44,6 +44,7 @@ Para esta versión estaré usando TypeScript, en su versión 5.3.2.
4444
| 21 | [**🪐 Mensaje Binario**](https://adventjs.dev/es/challenges/2023/21) | 🟠 | [TS](./src/challenges/21.ts) | [SPEC](./src/tests/21.spec.ts) |
4545
| 22 | [**🚂 Lenguaje de programación**](https://adventjs.dev/es/challenges/2023/22) | 🟢 | [TS](./src/challenges/22.ts) | [SPEC](./src/tests/22.spec.ts) |
4646
| 23 | [**🍽️ Cena de navidad**](https://adventjs.dev/es/challenges/2023/23) | 🟢 | [TS](./src/challenges/23.ts) | [SPEC](./src/tests/23.spec.ts) |
47+
| 24 | [**🪜 Salta en las escaleras**](https://adventjs.dev/es/challenges/2023/24) | 🟠 | [TS](./src/challenges/24.ts) | [SPEC](./src/tests/24.spec.ts) |
4748

4849
## Herramientas utilizadas 🛠️
4950

@@ -56,7 +57,8 @@ Para esta versión estaré usando TypeScript, en su versión 5.3.2.
5657
![TypeScript](https://img.shields.io/badge/-TypeScript-007ACC?style=flat-square&logo=typescript&logoColor=white)
5758
![Bash](https://img.shields.io/badge/-Bash-4EAA25?style=flat-square&logo=gnu-bash&logoColor=white)
5859

59-
![Github Actions](https://img.shields.io/badge/-Github%20Actions-2088FF?style=flat-square&logo=github-actions&logoColor=white)
60+
![Github
61+
Actions](https://img.shields.io/badge/-Github%20Actions-2088FF?style=flat-square&logo=github-actions&logoColor=white)
6062

6163
## Tests 🧪
6264

@@ -74,8 +76,7 @@ Para ejecutar un reto en particular, se debe ejecutar el siguiente comando:
7476
```bash
7577
pnpm t $N
7678
```
77-
Donde `$N` es el número del reto.
78-
![Alt text](./lib/individual-tests.png)
79+
Donde `$N` es el número del reto. ![Alt text](./lib/individual-tests.png)
7980

8081
## CI/CD 🚀
8182

src/challenges/24.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
export function getStaircasePaths (steps: number, maxJump: number): number[][] {
2+
const paths: number[][] = []
3+
const path: number[] = []
4+
const calculatePaths = (steps: number, maxJump: number, path: number[]): undefined => {
5+
if (steps === 0) {
6+
paths.push(path)
7+
return
8+
}
9+
10+
for (let i = 1; i <= maxJump && i <= steps; i++) {
11+
calculatePaths(steps - i, maxJump, [...path, i])
12+
}
13+
}
14+
15+
calculatePaths(steps, maxJump, path)
16+
17+
return paths
18+
}

0 commit comments

Comments
 (0)