Premissa:
Sua reputação está no formato Stack-Exchange, se puder ser representada decompondo suas contagens de medalhas (ouro, prata e bronze contadas separadamente) em seus dígitos de base 10 e juntando-as em qualquer ordem, com algumas ressalvas.
Enquanto se decompõe, cada
- O dígito da medalha de ouro vale três dígitos.
- A prata vale dois dígitos.
- Bronze é um dígito.
- Além disso, como o SE não exibe um tipo de medalha, se você não tiver nenhum, uma contagem de 0 medalhas para um tipo não produzirá a
[0]
.
Exemplo:
[1 Gold, 2 Silvers, 3 Bronzes]
irá se decompor em[1,1,1,2,2,3]
. 321112 e 213121 são dois exemplos de um número de formulário SE para essas medalhas.[20 Golds, 0 Silvers, 20 Bronzes]
irá se decompor em[2,2,2,0,0,0,2,0]
. 20002022 é um número do formulário SE.[11 Golds, 0 Silvers, 0 Bronzes]
irá se decompor em[1,1,1,1,1,1]
. 111111 é o único número do formulário SE para isso.
Não haverá 0's iniciais ao considerar um número SE. Por exemplo, no segundo exemplo acima, 00002222 -> 2222
não seria considerado um número de formulário SE para [20,0,20]
.
Entrada / Saída:
Input é uma lista / tupla / array / qualquer um dos [reputation, gold_medals, silver_medals, bronze_medals]
quais são números inteiros não negativos. Esta é a ordem assumida, mas pode ser alterada. Basta fazer uma anotação na sua resposta, se o fizer.
Saída são quaisquer dois valores consistentes para verdadeiro e falso.
Regras:
- A entrada sempre será válida
- Você sempre terá pelo menos 1 representante
- Você não pode ter medalhas, o que sempre deve retornar falso então.
- A contagem de medalhas não tem influência na realidade. Ter várias centenas de ouros e sem bronzes é bom.
- Este é o código-golfe, pelo que a resposta mais curta em bytes vence.
Casos de teste:
#[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
fonte
[bronze, silver, gold]
e uma segunda entrada separadareputation
?Respostas:
05AB1E ,
1614131110 bytesRecebe a entrada de medalhas na ordem
[bronze, silver, gold]
como primeira entrada ereputation
como segunda entrada.-1 byte graças a @Grimy .
Experimente online ou verifique todos os casos de teste .
Explicação:
fonte
3L
->∞
para -1.\x19\xd7\x30\x4b\x4a\x82\x80\x7b\xec\xcb
: Deve ser possível executar esses bytes hexadecimais com o--osabie
sinalizador, mas não tenho certeza de como fazê-lo na versão 05AB1E Elixir para ser completamente honesto (mas vou perguntar a alguns outros para verificar e responder com a resposta).JavaScript (ES6),
9274 bytesToma entrada como
(['gold','silver','bronze'])('rep')
. Retorna um valor booleano.Experimente online!
JavaScript (ES6), 74 bytes
Toma entrada como
(gold, silver, bronze, 'rep')
. Retorna um valor booleano.Experimente online!
fonte
MATL ,
28 bytes20 bytes16 bytes13 bytesRetorna 0 para falso e 1 para verdadeiro. Definitivamente, isso pode ser praticado.
Até 16 bytes, se a pontuação da reputação puder ser obtida separadamente, e o pedido for [bronze, prata, ouro], reputaçãoAté 13 bytes, graças a Luis Mendo
Experimente online!
fonte
Ruby , 69 bytes
Experimente online!
fonte
J ,
383431 bytesExperimente online!
fonte
Japonês ,
141312 bytesAceita entrada como
[rep, bronze, silver, gold]
Experimente ou verifique todos os casos de teste
fonte
Å
era desnecessário, poisfn
se livraria do primeiro valor. A remoçãoÅ
faz com que seja 12 bytesRetina 0.8.2 , 45 bytes
Experimente online! O link inclui o conjunto de testes. Explicação:
Excluir zero pontuação.
Expanda as pontuações de ouro e prata e converta o separador em uma nova linha.
Classifique a reputação e as pontuações expandidas separadamente.
Compare os dígitos classificados.
fonte
Gelatina , 10 bytes
Experimente online!
Argumento 1:
[Bronze, Silver, Gold]
Argumento 2:
Rep
fonte
Raquete,
14910798 bytesExperimente online!
Golfe pela primeira vez em Racket, ainda está procurando melhorias ...
Explicação (da versão original mais longa, mas com a mesma ideia):
fonte
Carvão , 24 bytes
Experimente online! Link é a versão detalhada do código. Recebe entrada no representante de pedidos, bronze, prata, ouro e saídas,
1
se o representante for válido. Explicação:Suponha que o representante seja válido.
Faça um loop sobre os quatro valores de entrada. Empurre cada dígito de cada valor
i
vezes ondei
está o índice indexado 0 do valor. A conversão numérica de base é usada aqui, pois é convertida0
em uma matriz vazia.Verifique se a contagem de cada dígito na matriz corresponde à da primeira entrada. Se houver alguma diferença, limpe a tela.
fonte
Geléia , 18 bytes
Experimente online!
isso é um pouco ruim
fonte
Python 2 ,
80797768 bytesExperimente online!
Aceita entrada como
rep, gold, silver, bronze
.fonte
Perl 5
-lF
, 62 bytesExperimente online!
Recebe entrada em linhas separadas como
fonte