Visual illustration of the code challenge: AlgoPark #2 : la grande Roue

AlgoPark #2 : la grande Roue

Analyse le fonctionnement de la grande roue pour rentrer davantage dans les méandres du parc !

Coding in the sandbox You must be logged in to access the sandbox.

Mission

Tu es toujours à AlgoPark, le parc délirant imaginé par le Dr. Loop il y a maintenant plus de 15 ans. Après avoir remis à plat le système de files d’attente, tu t’attaques désormais à une autre mécanique essentielle : la grande roue du parc, célèbre pour ses nacelles colorées et ses rotations vertigineuses !

Cette attraction, adorée des familles, fonctionne grâce à un système de répartition en nacelles, que le Dr. Loop a lui-même programmé… sauf que son algorithme commence à montrer des signes de fatigue. Trop de nacelles sont utilisées inutilement, et l’efficacité est en berne. Il est temps d’analyser ce fonctionnement et d’en reproduire la logique pour, bientôt, mieux l’optimiser.

Règles

Les visiteurs montent dans la grande roue par groupes, chaque groupe étant constitué de 1 à 4 personnes. Ces groupes sont traités dans leur ordre d’arrivée. Tu disposes d’un tableau groups, contenant la taille de chaque groupe, dans l’ordre où ils se présentent.

Chaque nacelle peut accueillir jusqu’à 4 personnes. Lorsque tu remplis une nacelle :

  • Si un groupe ne rentre pas dans la nacelle en cours, une nouvelle nacelle est lancée immédiatement pour l’accueillir.
  • Une fois une nacelle lancée, elle part, même si elle n’est pas pleine.
  • Les groupes ne sont pas scindés : un groupe va toujours dans la même nacelle.

Tu dois retourner le nombre total de nacelles utilisées ainsi que combien de personnes sont montées dans la dernière nacelle.

Par exemple Si les groupes sont : [2, 3, 1, 2]

  • Groupe 1 (2 personnes) → nacelle 1 (2/4)
  • Groupe 2 (3 personnes) → trop grand pour nacelle 1 (2 + 3 > 4) → nacelle 2 (3/4)
  • Groupe 3 (1 personne) → nacelle 2 (4/4)
  • Groupe 4 (2 personnes) → nacelle 3 (2/4)

Résultat attendu : 3_2
(3 nacelles utilisées, 2 personnes dans la dernière)

Solve the challenge

To code this challenge, several possibilities:
- Want to start coding right away? Use the online Sandbox.
- Want to work in your favorite editor? Organize your code well, test, check out our API documentation.
- You can also copy/paste a dataset below.

challenge code for resolution via API: ALGOPARK_2

Some resources to help you:
Data and algorithmic logic Methodologies Corrections

Support for resolution

Progress through challenges using our resolution aids: tools, techniques and advice to help you overcome the most complex programming challenges with methodology, confidence and creativity.

Dataset and algorithmic logic

Based on the data and the expected response, use the process to determine the logic to implement.

Show data and progress

Methodologies

Develop a structured approach with our solving guides. Work on specific concepts such as object-oriented programming or unit testing to improve your coding style and progress.

No methodology yet for this challenge, but we are working on it! Follow us to be informed of the release!


Corrections

The corrections allow you to discover certain technical concepts but will also give you a solution to the challenge. Code the challenge yourself before consulting the corrections ;)

No answer yet for this challenge, but we&'re working on it! Follow us to be informed of the release!

Programming concept(s) that can be used to solve this challenge: Conditions, Tableaux, Calculs

Keep coding

Other challenges to complete

Intermediate
Team Pokemon #3

Team Pokemon #3

Tu avances dans ton aventure… Mais maintenant, ce n’est pas 1 mais 3 équipes que tu vas constituer.

Calculation
Beginner
L’échelle de Scoville

L’échelle de Scoville

Prêt à concocter une sauce épicée pleine de saveurs ?

Calculation
Beginner
Team Pokemon #2

Team Pokemon #2

Tu as une grande quantité de Pokemons à ta disposition, de tous les types… Sauras tu constituer la meilleure équipe possible ?

Calculation Corrigé disponible : PHP