Eres un pez en un estanque que necesita sobrevivir comiendo otros peces. Solo puedes comer pescado que sea del mismo tamaño o más pequeño que tú. Debe crear un programa que tome un banco de peces como entrada ordenada. A partir de esto, debe calcular cuántos peces puede comer y, en última instancia, el tamaño al que crecerá.
Carta del tamaño
+--------------+--------------+--------------+--------------+
| | 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 |
+--------------+--------------+--------------+--------------+
Reglas
- Tu talla comienza en 1
- La entrada de bajío contendrá enteros de peces entre 0-9
- 0 = algas y no te ayudará a alimentarte.
- El entero de pez representa el tamaño del pez (1-9).
- Solo puedes comer pescado del mismo tamaño o menos que tú.
- Puede comer el pescado en el orden que elija para maximizar su tamaño.
- Solo puedes comer cada pescado una vez.
- Mientras más pescado comas, más rápido crecerás. Un pez de talla 2 equivale a dos peces de talla 1, un pez de talla 3 equivale a tres peces de talla 1, y así sucesivamente.
- Su tamaño aumenta en uno cada vez que alcanza las cantidades a continuación.
Devuelve un número entero del tamaño máximo que podría ser
Ejemplos
"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
El código más corto (contando en bytes) para hacerlo en cualquier idioma en el que los números ganen.
5,6
o6,6
del último ejemplo de Mark y llegar al tamaño 13; Sin embargo, en su5,5
lugar, elimine y solo se puede alcanzar el tamaño cinco.Respuestas:
JavaScript (ES6), 44 bytes
Toma datos como una matriz de enteros.
Pruébalo en línea!
¿Cómo?
fuente
Python 2 , 60 bytes
Pruébalo en línea!
fuente
Wolfram Language (Mathematica) ,
4039 bytesPruébalo en línea!
Explicación
Almacenar
floor(s)
enf
, simbólicamente. Comience cons=1
(tamaño).Iterar a través de cada elemento en la entrada ...
Si el elemento no es mayor que
s
, entonces incrementes
en<element> / (4 * floor(s))
. LosOr (||)
cortocircuitos de lo contrario.Retorno
floor(s)
.fuente
Jalea , 17 bytes
Pruébalo en línea!
Un método interesante que bien podría ser golpeado por algún tipo de bucle o recursión.
¿Cómo?
fuente
Haskell , 46 bytes
Pruébalo en línea!
fuente
Lua , 214 bytes
Pruébalo en línea!
Ni siquiera cerca del más corto aquí, pero fue divertido descubrirlo: D
fuente