Sebuah ruangan dapat terdiri dari empat persegi panjang yang terhubung, misalnya sebuah ruangan berbentuk L. Ruangan seperti itu dapat dideskripsikan dengan daftar dimensi yang menggambarkan ukuran masing-masing persegi panjang.
Asumsikan Anda memiliki dua daftar input. Yang pertama berisi lebar persegi panjang yang ditumpuk secara vertikal satu sama lain. Yang kedua berisi ketinggian persegi panjang.
Sebagai contoh, input [4 6][3 2]
akan menjadi persegi panjang 4-by-3 di atas persegi panjang 6-oleh-2. Gambar di bawah ini menunjukkan bentuk ini. Perhatikan bahwa dinding dianggap "tipis", jadi itu adalah ruang antara dinding yang ditentukan oleh input.
[4 6][3 2]
____
| |
| |
| |_
| |
|______|
Tantangannya adalah: Ambil daftar dimensi sebagai input, dan output bentuk ruangan sebagai seni ASCII. Formatnya harus seperti pada contoh sampel:
- Semua dinding horizontal ditampilkan menggunakan garis bawah
- Semua dinding vertikal ditampilkan menggunakan batang
- Tidak akan ada dinding di mana persegi panjang terhubung
- Dinding kiri lurus
- Untuk lebih jelasnya, lihat kasus uji
Asumsi yang dapat Anda buat:
- Semua dimensi berada dalam kisaran
[1 ... 20]
- Semua dimensi horizonal adalah bilangan genap
- Jumlah persegi panjang akan berada dalam kisaran
[1 ... 10]
- Hanya input yang valid yang diberikan
- Format input opsional (Anda dapat menentukan urutan dimensi input, harap tentukan dalam jawabannya).
Kasus uji:
[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) -> format input saya:[1 2 1 1 1 2 1 3 2 1][2 4 10 2 18 4 8 6 14 2]
Jawaban:
Retina,
169150113 byteHitungan byte mengasumsikan penyandian ISO 8859-1.
Kode ini berisi spasi tambahan pada baris baru tambahan.
Masukkan format:
Sebagai contoh:
Cobalah online!
sumber
JavaScript (ES6) 174
Satu-satunya bagian penting adalah baris horizontal yang menyatukan 2 bagian dengan lebar berbeda, dengan bilah vertikal di sisi kanan yang bisa di tengah atau di ujung kanan.
UJI
sumber
Python 3,
230223222217 217 byteTerima kasih kepada @StewieGriffin @KevinLau untuk bantuan mereka
Hasil
sumber
a=1;b=2
)m=' _'
bukannyam=[' ','_']
menghemat seperti 5 byte.Ruby 191
Pertama kali bermain golf, juga ini adalah hari pertamaku dengan Ruby, jadi mungkin itu bukan hal yang paling elegan di dunia, tetapi itu akan berhasil?
sumber