Você é peixe em um lago que precisa sobreviver comendo outros peixes. Você só pode comer peixe do mesmo tamanho ou menor que você. Você deve criar um programa que leve um cardume de peixes como entrada classificada. A partir disso, você deve descobrir quantos peixes você pode comer e, finalmente, o tamanho em que crescerá.
Carta do tamanho
+--------------+--------------+--------------+--------------+
| | Amount extra | Total size 1 | Increase to |
| Current size | needed for | fish | size |
| | next size | | |
+--------------+--------------+--------------+--------------+
| 1 | 4 | 4 | 2 |
+--------------+--------------+--------------+--------------+
| 2 | 8 | 12 | 3 |
+--------------+--------------+--------------+--------------+
| 3 | 12 | 24 | 4 |
+--------------+--------------+--------------+--------------+
| 4 | 16 | 40 | 5 |
+--------------+--------------+--------------+--------------+
| 5 | 20 | 60 | 6 |
+--------------+--------------+--------------+--------------+
| 6 | 24 | 84 | 7 |
+--------------+--------------+--------------+--------------+
Regras
- Seu tamanho começa em 1
- A entrada do cardume conterá números inteiros de peixes entre 0 e 9
- 0 = algas e não ajudará você a se alimentar.
- O número inteiro do peixe representa o tamanho do peixe (1-9).
- Você só pode comer peixe do mesmo tamanho ou menos que você.
- Você pode comer o peixe em qualquer ordem que você escolher para maximizar seu tamanho.
- Você só pode comer cada peixe uma vez.
- Quanto maior o peixe que você come, mais rápido você cresce. Um peixe tamanho 2 é igual a dois peixes tamanho 1, tamanho 3 é igual a três peixes tamanho 1 e assim por diante.
- Seu tamanho é incrementado em um cada vez que você atinge os valores abaixo.
Retorna um número inteiro do tamanho máximo que você poderia ter
Exemplos
"11112222" => 3
4 fish size 1 increases to 2, 4 size 2 makes you 3
"111111111111" => 3
4 fish size 1 increases to 2, 8 size 1 makes you 3
O código mais curto (contando em bytes) para fazê-lo em qualquer idioma em que os números vencem.
code-golf
programming-puzzle
Scath
fonte
fonte
5,6
ou6,6
do último exemplo de Mark e chegar ao tamanho 13; no entanto, remova5,5
e só é possível atingir o tamanho cinco.Respostas:
JavaScript (ES6), 44 bytes
Recebe a entrada como uma matriz de números inteiros.
Experimente online!
Quão?
fonte
Python 2 , 60 bytes
Experimente online!
fonte
Wolfram Language (Mathematica) ,
4039 bytesExperimente online!
Explicação
Armazenar
floor(s)
emf
, simbolicamente. Comece coms=1
(tamanho).Iterar através de cada elemento na entrada ...
Se o elemento não for maior que
s
, aumentes
em<element> / (4 * floor(s))
. OsOr (||)
curto-circuitos de outra forma.Retorno
floor(s)
.fonte
Geléia , 17 bytes
Experimente online!
Um método interessante que pode muito bem ser derrotado por algum tipo de loop ou recursão.
Quão?
fonte
Haskell , 46 bytes
Experimente online!
fonte
Lua , 214 bytes
Experimente online!
Nem mesmo o mais curto aqui, mas foi divertido descobrir: D
fonte