Skip to content

Commit

Permalink
🪜 added challenge 24: jump on the stairs
Browse files Browse the repository at this point in the history
  • Loading branch information
jamerrq committed Dec 24, 2023
1 parent e7dd67d commit 20799dd
Show file tree
Hide file tree
Showing 4 changed files with 467 additions and 8 deletions.
Binary file modified lib/rank.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
17 changes: 9 additions & 8 deletions readme.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# Advent JS version 2023 🎄

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

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

- https://adventjs.dev/

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

## Retos 🎅

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

## Herramientas utilizadas 🛠️

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

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

## Tests 🧪

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

## CI/CD 🚀

Expand Down
18 changes: 18 additions & 0 deletions src/challenges/24.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
export function getStaircasePaths (steps: number, maxJump: number): number[][] {
const paths: number[][] = []
const path: number[] = []
const calculatePaths = (steps: number, maxJump: number, path: number[]): undefined => {
if (steps === 0) {
paths.push(path)
return
}

for (let i = 1; i <= maxJump && i <= steps; i++) {
calculatePaths(steps - i, maxJump, [...path, i])
}
}

calculatePaths(steps, maxJump, path)

return paths
}
Loading

0 comments on commit 20799dd

Please sign in to comment.