Un Tangram simplifié

Ce défi est tiré de c0d1ngUP 2023

Le Docteur est toujours fasciné par ces espèces qui peuvent s'amuser de simples pièces de tailles différentes à assembler en carré. Les terriens appellent ça un Tangram, paraît-il, mais chez les Judoons, le problème est simplifié (n'oublions pas leurs capacités cognitives... disons diminuées). Le principe est le même, mais les pièces sont rectangulaires.

Quel rapport entre le Docteur et un jeu de Judoons me direz-vous ? Hé bien lors d'un petit voyage en Tardis avec vous, son Compagnon du moment, vous vous êtes retrouvés arrêtés par une escouade de ces voyous. Refusant de répondre à leur violence, et parce qu'il se doute qu'ils n'ont pas eu l'idée tout seul de vous enlever, le Docteur a décidé d'attendre tranquillement dans la geôle en attendant de rencontrer l'entité (allez savoir, ce n'est peut-être même pas un humanoïde) qui les dirige.

S'il a l'habitude de patienter (c'est naturel pour un Seigneur du Temps), il n'en est pas de même pour vous, Terrien. Alors ce jeu de Judoons, pour vous, c'est un peu une manière de vous changer les idées en attendant la confrontation. Vous faites confiance au Docteur, bien sûr, mais rencontrer une escouade de Judoons reste une expérience assez éprouvante pour qui ne les connaît pas. Alors, jouons !

L'entrée vous donne une liste de dimensions de pièces rectangulaires. Chaque pièce est donnée par sa largeur puis sa hauteur. L'objectif est de placer ces pièces, simplement en les faisant glisser (on ne peut pas faire tourner les pièces si bien que la largeur ne pourra pas devenir la hauteur), de manière à former un carré.

Supposons que les données d'entrée soient :

[[2, 3], [2, 4], [2, 2], [2, 1], [1, 5]]

La première pièce ([2, 3]) est la pièce A, et la dernière est la pièce E (s'il y a plus de 26 pièces, la 27e sera la pièce a, suivie de la pièce b, et ainsi de suite, jusqu'à 52 pièces différentes au plus). On peut arranger ces pièces pour former un carré ainsi :

AAEDD
AAEBB
AAEBB
CCEBB
CCEBB

Pour donner la solution, on a remplacé chaque élément du carré formé par le numéro de la pièce à laquelle il appartient.

Il y a bien sûr plusieurs solutions, à commencer par celle-ci :

DDEAA
BBEAA
BBEAA
BBECC
BBECC

Toutes les solutions qui ne nécessitent pas de faire tourner les pièces et qui forment un carré (bien sûr sans trou) sont valides.

Pour répondre au défi, en plus de fournir la signature donnée à l'entrée, vous devez fournir un champs nommé tangram qui contient la chaîne décrivant chaque ligne du carré construit (sans les passages à la ligne).

Par exemple :

Données d'entrée :

{
    'signature': 'XXX', 
    'pieces': [[2, 3], [2, 4], [2, 2], [2, 1], [1, 5]]
}

Réponse :

{
    'signature': 'XXX', 
    'tangram': 'AAEDDAAEBBAAEBBCCEBBCCEBB'
}
Vous devez être connecté.e pour accéder aux entrées et proposer une réponse au défi.
Vous devez être connecté.e pour accéder aux forums.