先日、息子はレゴのようなブロックを使って階段を作るように頼みました。そして、私はこのようなものを思いつきました:
それから私の子供は、コンピューター画面で同様の階段を生成する最小バイト数を使用するプログラムを私に尋ねました。私はcode-golfが得意ではないので、あなたの助けが必要です。次のプログラムが必要です。
- 階段に必要なレベルの数を持つ正の整数を受け取ります。
- 画像に表示されているパターンを使用して、階段の図面を出力します。
出力はテキスト形式になりますが、ブリックは互いに区別できます。たとえば、「█」文字をブロックの半分として使用して、好きな色で塗りつぶしたり、任意の文字を選択したりできます。
制限事項:
- ブロックは3種類の色である必要があり、できるだけ長く使用されます(入力が1または2の場合、3色すべてを使用するのに十分なブロックがありません)。必要に応じて、たとえば「░▒▓」文字を使用するか、3つの異なる文字を選択するだけです。
- 同じ色またはパターンの2つのブロックを1列に並べて配置することはできません。
私の息子は、階段が描かれている限り、後続のスペースや改行を気にしません。
例(文字の選択が悪いのでごめんなさい):
Input: 1
Output:
██
Input: 2
Output:
██
▓▓
Input: 3
Output:
██
▓▓
██░░
Input: 5
Output:
██
██
██░░
██░░
██░░▓▓