Premisa:
Su reputación está en forma de intercambio de pila si se puede representar descomponiendo sus recuentos de medallas (oro, plata y bronce contados por separado) en sus dígitos de base 10 y uniéndolos en cualquier orden dado, con algunas advertencias.
Mientras se descompone, cada
- El dígito de la medalla de oro vale tres dígitos.
- La plata vale dos dígitos.
- El bronce es un dígito.
- Además, dado que SE no muestra un tipo de medalla si no tiene ninguno, un recuento de 0 medallas para un tipo no arrojará a
[0]
.
Ejemplo:
[1 Gold, 2 Silvers, 3 Bronzes]
se descompondrá en[1,1,1,2,2,3]
. 321112 y 213121 son dos ejemplos de un número de formulario SE para estas medallas.[20 Golds, 0 Silvers, 20 Bronzes]
se descompondrá en[2,2,2,0,0,0,2,0]
. 20002022 es un número de formulario SE.[11 Golds, 0 Silvers, 0 Bronzes]
se descompondrá en[1,1,1,1,1,1]
. 111111 es el único número de formulario SE para esto.
No habrá ceros al considerar un número SE. Por ejemplo, en el segundo ejemplo anterior, 00002222 -> 2222
no se consideraría un número de formulario SE para [20,0,20]
.
De entrada y salida:
La entrada es una lista / tupla / matriz / cualquiera de los [reputation, gold_medals, silver_medals, bronze_medals]
cuales son todos enteros no negativos. Este es el orden asumido pero se puede cambiar. Solo haz una nota en tu respuesta si lo haces.
La salida es dos valores consistentes para verdadero y falso.
Reglas:
- La entrada siempre será válida
- Siempre tendrás al menos 1 representante
- No puede tener medallas en absoluto, que siempre deberían ser falsas en ese momento.
- Los recuentos de medallas no tienen relación con la realidad. Tener varios cientos de oros y ningún bronce está bien.
- Este es el código de golf, por lo que la respuesta más corta en bytes gana.
Casos de prueba:
#[Rep, Gold, Silver, Bronze] -> Output
[4, 0, 0, 4] -> True
[1447, 0, 4, 17] -> True
[74414, 4, 0, 17] -> True
[4444, 4, 0, 4] -> True
[4455, 0, 54, 0] -> True
[5355, 5, 0, 3] -> True
[53535, 5, 3, 0] -> True
[4444, 0, 0, 4444] -> True
[444, 4, 0, 0] -> True
[1234, 0, 0, 1234] -> True
[1234, 0, 0, 4321] -> True
[4444, 1, 0, 1] -> False
[5555, 5, 0, 55] -> False
[1234, 1, 23, 4] -> False
[1, 0, 0, 0] -> False
[1001001, 0, 10, 10] -> False
fuente
[bronze, silver, gold]
y una segunda entrada separadareputation
?Respuestas:
05AB1E ,
1614131110 bytesToma la entrada de medallas en el orden
[bronze, silver, gold]
como primera entrada, yreputation
como segunda entrada.-1 byte gracias a @Grimy .
Pruébelo en línea o verifique todos los casos de prueba .
Explicación:
fuente
3L
->∞
para -1.\x19\xd7\x30\x4b\x4a\x82\x80\x7b\xec\xcb
: Debería ser posible ejecutar estos bytes hexadecimales con el--osabie
indicador, pero no estoy seguro de cómo hacerlo en la versión 05AB1E Elixir para ser completamente honesto (pero preguntaré algunos otros para verificar y responderle con la respuesta).JavaScript (ES6),
9274 bytesToma entrada como
(['gold','silver','bronze'])('rep')
. Devuelve un valor booleano.Pruébalo en línea!
JavaScript (ES6), 74 bytes
Toma entrada como
(gold, silver, bronze, 'rep')
. Devuelve un valor booleano.Pruébalo en línea!
fuente
MATL ,
28 bytes20 bytes16 bytes13 bytesDevuelve 0 para falso y 1 para verdadero. Esto definitivamente se puede jugar al golf.
Hasta 16 bytes si la puntuación de reputación se puede tomar por separado, y el orden es [bronce, plata, oro], reputaciónHasta 13 bytes gracias a Luis Mendo
Pruébalo en línea!
fuente
Rubí , 69 bytes
Pruébalo en línea!
fuente
J ,
383431 bytesPruébalo en línea!
fuente
Japt ,
141312 bytesToma entrada como
[rep, bronze, silver, gold]
Pruébelo o verifique todos los casos de prueba
fuente
Å
era innecesario, yafn
que eliminaría el primer valor. La eliminación loÅ
convierte en 12 bytesRetina 0.8.2 , 45 bytes
Pruébalo en línea! El enlace incluye un conjunto de pruebas. Explicación:
Eliminar cero puntajes.
Expanda los puntajes de oro y plata, y convierta el separador en una nueva línea.
Ordene la reputación y las puntuaciones ampliadas por separado.
Compara los dígitos ordenados.
fuente
Jalea , 10 bytes
Pruébalo en línea!
Argumento 1:
[Bronze, Silver, Gold]
Argumento 2:
Rep
fuente
Raqueta,
14910798 bytesPruébalo en línea!
Golf por primera vez en Racket, así que sigo buscando mejoras ...
Explicación (de la versión original más larga, pero la misma idea):
fuente
Carbón de leña , 24 bytes
Pruébalo en línea! El enlace es a la versión detallada del código. Toma entrada en el representante de la orden, bronce, plata, oro y salidas
1
si el representante es válido. Explicación:Suponga que el representante es válido.
Pase sobre los cuatro valores de entrada. Empuje cada dígito de cada valor
i
multiplicado pori
el índice indexado 0 del valor. La conversión de base numérica se usa aquí ya que convierte0
en una matriz vacía.Verifique que el recuento de cada dígito en la matriz coincida con el de la primera entrada. Si alguno difiere, limpie el lienzo.
fuente
Jalea , 18 bytes
Pruébalo en línea!
esto es un poco malo
fuente
Pitón 2 ,
80797768 bytesPruébalo en línea!
Toma entrada como
rep, gold, silver, bronze
.fuente
Perl 5
-lF
, 62 bytesPruébalo en línea!
Toma entrada en líneas separadas como
fuente