前書き:
(出典:Wikipedia)
虹を見ると、上から下まで常に色が付いています:
赤; オレンジ; 黄; 緑; 青い; インジゴ; バイオレット
これらの個々のリングを見ると、もちろん赤いリングは紫のリングよりも大きくなっています。
さらに、2つまたは3つの虹を同時に持つこともできます。
上記のすべてを組み合わせたものが、このチャレンジで使用されます。
チャレンジ:
正確にサイズ7の整数のリストを指定すると、各値は虹を形成するのに使用できる色の粒子を示し(最大のインデックスは赤を示し、最小のインデックスは紫を示します)、形成できる虹の量を出力します。
単一の整数虹には、少なくとも3xバイオレット、4xインディゴ、5xブルー、6xグリーン、7xイエロー、8xオレンジ、9xレッドが必要です。その上にある2番目の虹は、最初の虹の赤いリング(それらの間に1つのスペースを含む)よりもさらに大きくなるため、少なくとも11xバイオレット、12xインディゴ、13xブルー、14xグリーン、15xイエロー、16xオレンジが必要です、最初の虹が使用するものに加えて17x赤。3番目の虹は再び19xバイオレットで始まります。
例:
入力リスト:[15,20,18,33,24,29,41]
出力:2
どうして?15倍のバイオレットがあり、2つの虹には少なくとも3 + 11 = 14が必要です。20個のインディゴがあり、2つの虹に対して少なくとも4 + 12 = 16が必要です。など2つの虹に十分な色がありますが、3つの虹を形成するには十分ではないため、出力は2
です。
チャレンジルール:
- 入力配列の整数は、非負(
>= 0
)であることが保証されています。 - 入力リストのサイズは正確に7であることが保証されています。
- 虹が形成できないとき、出力します
0
。 - 入出力形式は柔軟です。STDINから取得できる10進数の整数のリストまたは配列にすることができます。出力は、任意の妥当な出力タイプの関数からの戻り値か、STDOUTに直接印刷できます。
n
虹の量に必要な色の最小量:
Amount of Rainbows Minimum amount per color
0 [0,0,0,0,0,0,0]
1 [3,4,5,6,7,8,9]
2 [14,16,18,20,22,24,26]
3 [33,36,39,42,45,48,51]
4 [60,64,68,72,76,80,84]
5 [95,100,105,110,115,120,125]
etc...
一般的なルール:
- これはcode-golfであるため、バイト単位の最短回答が優先されます。
コードゴルフ言語では、非コードゴルフ言語で回答を投稿することを妨げないでください。「任意の」プログラミング言語の可能な限り短い答えを考えてみてください。 - 回答には標準の規則が適用されるため、STDIN / STDOUT、適切なパラメーターと戻り値型、完全なプログラムを持つ関数/メソッドの使用が許可されます。あなたの電話。
- デフォルトの抜け穴は禁止されています。
- 可能であれば、コードのテストへのリンクを追加してください。
- また、回答の説明を追加することを強くお勧めします。
テストケース:
Input: [15,20,18,33,24,29,41]
Output: 2
Input: [3,4,5,6,7,8,9]
Output: 1
Input: [9,8,7,6,5,4,3]
Output: 0
Input: [100,100,100,100,100,100,100]
Output: 4
Input: [53,58,90,42,111,57,66]
Output: 3
Input: [0,0,0,0,0,0,0]
Output: 0
Input: [95,100,105,110,115,120,125]
Output: 5
Input: [39525,41278,39333,44444,39502,39599,39699]
Output: 98
0,0,0,0,0,0,0
しかし:((それは1ギャップロジックと適合しない)エッジケース