Une pièce peut être constituée de rectangles connectés, par exemple une pièce en forme de L. Une telle pièce peut être décrite par une liste de dimensions décrivant la taille de chaque rectangle.
Supposons que vous ayez deux listes d'entrée. Le premier contient la largeur des rectangles empilés verticalement les uns sur les autres. Le second contient la hauteur des rectangles.
Par exemple, l'entrée [4 6][3 2]
sera un rectangle 4 x 3 au-dessus d'un rectangle 6 x 2. La figure ci-dessous montre cette forme. Notez que les murs sont considérés comme "minces", donc ce sont les espaces entre les murs qui sont déterminés par l'entrée.
[4 6][3 2]
____
| |
| |
| |_
| |
|______|
Le défi est le suivant: prendre une liste de dimensions en entrée et sortir la forme de la pièce en ASCII. Le format doit être comme dans les exemples de figures:
- Tous les murs horizontaux sont représentés à l'aide de traits de soulignement
- Tous les murs verticaux sont représentés à l'aide de barres
- Il ne doit pas y avoir de murs où les rectangles sont connectés
- Le mur de gauche est droit
- Pour plus de détails, jetez un œil aux cas de test
Hypothèses que vous pouvez formuler:
- Toutes les dimensions sont dans la gamme
[1 ... 20]
- Toutes les dimensions horizontales sont des nombres pairs
- Le nombre de rectangles sera dans la plage
[1 ... 10]
- Seule une entrée valide est donnée
- Format d'entrée facultatif (vous pouvez décider de l'ordre des dimensions d'entrée, veuillez le préciser dans la réponse).
Cas de test:
[2][1]
__
|__|
---
[4][2]
____
| |
|____|
---
[2 6 2 4][2 2 1 3]
__
| |
| |___
| |
| ___|
| |_
| |
| |
|____|
---
[2 14 6 8 4 18 2 10 4 2][1 2 3 1 2 1 1 1 2 1]
__
| |___________
| |
| _______|
| |
| |
| |_
| ___|
| |
| |_____________
| _______________|
| |______
| ____|
| |
| _|
|__|
[2 14 6 8 4 18 2 10 4 2][1 2 3 1 2 1 1 1 2 1]
-> (swap and reverse) -> mon format d'entrée:[1 2 1 1 1 2 1 3 2 1][2 4 10 2 18 4 8 6 14 2]
Réponses:
Rétine,
169150113 octetsLe nombre d'octets suppose un codage ISO 8859-1.
Le code contient un espace de fin sur une nouvelle ligne de fin.
Format d'entrée:
Par exemple:
Essayez-le en ligne!
la source
JavaScript (ES6) 174
La seule partie critique est la rangée horizontale joignant 2 parties de largeurs différentes, avec la barre verticale sur le côté droit qui peut être au milieu ou à l'extrémité droite.
TESTER
la source
Python 3,
230223222217 octetsMerci à @StewieGriffin @KevinLau pour leur aide
Résultats
la source
a=1;b=2
)m=' _'
au lieu d'm=[' ','_']
enregistre comme 5 octets.Rubis 191
Golf pour la première fois, c'est aussi mon premier jour avec Ruby, donc ce n'est probablement pas la chose la plus élégante du monde, mais ça va faire?
la source