Pokój może składać się z połączonych prostokątów, na przykład pokój w kształcie litery L. Taki pokój można opisać listą wymiarów opisujących rozmiar każdego prostokąta.
Załóżmy, że masz dwie listy danych wejściowych. Pierwszy zawiera szerokość prostokątów ułożonych pionowo jeden nad drugim. Drugi zawiera wysokość prostokątów.
Na przykład wejściem [4 6][3 2]
będzie prostokąt 4 na 3 na szczycie prostokąta 6 na 2. Poniższy rysunek pokazuje ten kształt. Zauważ, że ściany są uważane za „cienkie”, dlatego odległości między ścianą są określane przez dane wejściowe.
[4 6][3 2]
____
| |
| |
| |_
| |
|______|
Wyzwanie jest następujące: weź listę wymiarów jako dane wejściowe i wyślij kształt pokoju jako ASCII-art. Format musi być taki jak na przykładowych rysunkach:
- Wszystkie ściany poziome pokazano za pomocą podkreślników
- Wszystkie pionowe ściany są pokazane za pomocą pasków
- Prostokąty nie mogą mieć ścian
- Lewa ściana jest prosta
- Aby uzyskać więcej informacji, spójrz na przypadki testowe
Założenia, które możesz poczynić:
- Wszystkie wymiary są w zakresie
[1 ... 20]
- Wszystkie wymiary horyzontalne są liczbami parzystymi
- Liczba prostokątów będzie w zakresie
[1 ... 10]
- Podano tylko prawidłowe dane wejściowe
- Opcjonalny format wejściowy (możesz określić kolejność wymiarów wejściowych, proszę podać w odpowiedzi).
Przypadki testowe:
[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]
-> (zamień i odwróć) -> mój format wejściowy:[1 2 1 1 1 2 1 3 2 1][2 4 10 2 18 4 8 6 14 2]
Odpowiedzi:
Siatkówka,
169150113 bajtówLiczba bajtów zakłada kodowanie ISO 8859-1.
Kod zawiera końcowe spacje na końcowym znaku nowej linii.
Format wejściowy:
Na przykład:
Wypróbuj online!
źródło
JavaScript (ES6) 174
Jedynym krytycznym elementem jest poziomy rząd łączący 2 części o różnych szerokościach, z pionowym paskiem po prawej stronie, który może znajdować się na środku lub na prawym końcu.
TEST
źródło
Python 3,
230223222217 bajtówDzięki @StewieGriffin @KevinLau za pomoc
Wyniki
źródło
a=1;b=2
)m=' _'
zamiastm=[' ','_']
zapisuje jak 5 bajtów.Ruby 191
Pierwszy raz w golfa, to także mój pierwszy dzień z Ruby, więc to chyba nie jest najbardziej elegancka rzecz na świecie, ale się uda?
źródło