Introdução:
(Fonte: Wikipedia )
Quando olhamos para um arco-íris, ele sempre terá as cores de cima para baixo:
vermelho; laranja; amarelo; verde; azul; índigo; tolet
Se olharmos para esses anéis individuais, é claro que o anel vermelho é maior que o anel violeta.
Além disso, também é possível ter dois ou até três arco-íris ao mesmo tempo.
Tudo isso combinado acima será usado neste desafio:
Desafio:
Dada uma lista de números inteiros exatamente do tamanho 7, em que cada valor indica as partículas de cores disponíveis para formar arco-íris (onde o maior índice indica vermelho e o menor índice indica violeta), produz a quantidade de arco-íris que pode ser formada.
Um único arco-íris inteiro precisa ter pelo menos 3x violeta, 4x índigo, 5x azul, 6x verde, 7x amarelo, 8x laranja, 9x vermelho. Um segundo arco-íris em cima dele será ainda maior que o anel vermelho do primeiro arco-íris (incluindo um espaço entre eles), portanto precisará de pelo menos 11x violeta, 12x índigo, 13x azul, 14x verde, 15x amarelo, 16x laranja , 17x vermelho, além do que o primeiro arco-íris usa. O terceiro arco-íris começará novamente em 19x violeta.
Exemplo:
Lista de entradas: [15,20,18,33,24,29,41]
Saída:2
Por quê? Temos 15x violeta e precisamos de pelo menos 3 + 11 = 14 para dois arco-íris. Temos 20 índigo e precisamos de pelo menos 4 + 12 = 16 para dois arco-íris. Etc. Temos cores suficientes para dois arco-íris, mas não o suficiente para formar três arco-íris, então a saída é 2
.
Regras do desafio:
- Os números inteiros na matriz de entrada são garantidos como não negativos (
>= 0
). - A lista de entrada é garantidamente do tamanho 7 exatamente.
- Quando nenhum arco-íris pode ser formado, produzimos
0
. - O formato de entrada e saída é flexível. Pode ser uma lista ou matriz de números inteiros decimais, pode ser obtida em STDIN. A saída pode ser um retorno de uma função em qualquer tipo de saída razoável ou impressa diretamente no STDOUT.
Quantidade mínima de cores necessária para a n
quantidade de arco-íris:
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...
Regras gerais:
- Isso é código-golfe , então a resposta mais curta em bytes vence.
Não permita que idiomas com código de golfe o desencorajem a postar respostas com idiomas que não sejam codegolf. Tente encontrar uma resposta o mais curta possível para 'qualquer' linguagem de programação. - As regras padrão se aplicam à sua resposta, para que você possa usar STDIN / STDOUT, funções / método com os parâmetros adequados e programas completos do tipo retorno. Sua chamada.
- As brechas padrão são proibidas.
- Se possível, adicione um link com um teste para o seu código.
- Além disso, é altamente recomendável adicionar uma explicação para sua resposta.
Casos de teste:
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
ponta-caso, porém :( (que não se encaixa com a lógica 1-gap)