この2番目のバージョンのアイデアを提供してくれたFryAmTheEggmanに感謝します。
バージョン1はこちら。
それほど単純ではない課題:次の構築順序に従って、いくつかのカードが与えられた場合、その数のカードで可能な最大のカードの家を構築します。
/\ /\ /\ /\/\
-- -- -- ---- ----
/\ → /\/\ → /\/\ → /\/\ → /\/\/\ → /\/\/\ → /\/\/\ →
/\ /\
-- -- --
/\/\ /\/\ /\/\
---- ---- ----
→ /\/\/\ → /\/\/\ → /\/\/\/\ → ...
したがって、1階建ての家から始めて、隣接するグループを構築し、次にブリッジカードを配置し、2階にグループを構築し、1階から3階に到達するように1階からグループと橋を構築します。オン。
シングルカードはで表現される/、\または--。できるだけ多くのカードを使用した後、1枚のカードが残っている場合は、これまでに達成したことを出力します(3枚のカードの例を参照してください。結果は2枚のカードと同じです)。唯一の例外は1枚のカードの場合で、フラットカードを出力する必要があります。
例:
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:
/\
--
/\/\
----
/\/\/\
------
/\/\/\/\
--------
/\/\/\/\/\
入力は数値または文字列で、常に正の整数になります。出力は、先頭と末尾のスペース、および改行を許可して、示されているとおりにする必要があります。
これはコードゴルフなので、各言語の最短のプログラム/機能が勝つ可能性があります!