Terima kasih kepada FryAmTheEggman untuk ide untuk versi kedua ini.
Versi 1 di sini .
Tantangan yang tidak terlalu sederhana: diberikan sejumlah kartu, bangun rumah kartu terbesar yang Anda bisa dengan jumlah kartu itu, sesuai dengan urutan bangunan berikut:
/\ /\ /\ /\/\
-- -- -- ---- ----
/\ → /\/\ → /\/\ → /\/\ → /\/\/\ → /\/\/\ → /\/\/\ →
/\ /\
-- -- --
/\/\ /\/\ /\/\
---- ---- ----
→ /\/\/\ → /\/\/\ → /\/\/\/\ → ...
Jadi Anda mulai dengan rumah satu lantai, kemudian membangun kelompok yang berdekatan, kemudian meletakkan kartu jembatan, kemudian membangun kelompok di lantai dua, kemudian mulai membangun kelompok dan jembatan dari lantai pertama secara diagonal untuk mencapai lantai tiga, dan seterusnya di.
Satu kartu akan diwakili dengan a /, a \atau a --. Jika setelah menggunakan sebanyak mungkin kartu, Anda memiliki satu kartu tersisa, cukup outputkan apa yang telah Anda capai sejauh ini (lihat contoh untuk 3 kartu, hasilnya sama dengan 2 kartu). Satu-satunya pengecualian adalah kasus 1 kartu, yang harus mengeluarkan kartu datar.
Contoh:
Input: 1
Output:
-- <a card lying on the floor>
Input: 2
Output:
/\
Input: 3
Output:
/\
Input: 5
Output:
--
/\/\
Input: 10
Output:
/\
----
/\/\/\
Input: 20
Output:
/\
--
/\/\/\
------
/\/\/\/\
Input: 39
Output:
--
/\/\
----
/\/\/\
------
/\/\/\/\
--------
/\/\/\/\/\
Input: 40
Output:
/\
--
/\/\
----
/\/\/\
------
/\/\/\/\
--------
/\/\/\/\/\
Input dapat berupa angka atau string, dan akan selalu menjadi bilangan bulat positif. Keluaran harus persis seperti yang ditunjukkan, dengan spasi di depan dan di belakang serta baris baru diizinkan.
Ini adalah kode-golf , jadi semoga program / fungsi terpendek untuk setiap bahasa menang!