Skittles são doces coloridos, onde existem 5 sabores distintos; uva, maçã verde, limão, laranja e morango representados por (p) uple, (g) reen, (y) ellow, (o) range e (r) ed, respectivamente. Eu costumava comer skittles, classificando todas as cores diferentes e depois comendo em sequência. Depois de receber alguns olhares estranhos no escritório, agora finjo comê-los como uma pessoa normal. Sua tarefa é emular isso:
Seu código (programa ou função completo) receberá uma variedade de pinos (10x10) como entrada (em qualquer formato razoável). Essa matriz representará uma pilha de skittles não classificados. Sua tarefa é "comê-los" da sua cor menos favorita à favorita. Meu pedido preferido é uva, maçã verde, limão, laranja, morango, mas você pode escolher qualquer pedido desde que seja sempre aplicado (liste sua preferência em sua inscrição para que eu possa julgá-lo). Depois de comer cada pedaço de doce, seu código produzirá (no mesmo formato que você digitou) a pilha restante com o pedaço comido substituído por um espaço. Você repetirá até que apenas restem os seus favoritos. Você pode escolher qualquer bolinho para comer (pode ser aleatório ou determinístico). Espaços à direita devem ser mantidos.
Por exemplo, sua sequência de saída pode ficar assim (usando 5x5 por questões de brevidade e mostrando espaços como .
)
start 1 2 3 4 5 n
.org. .org. .org. .org. .or.. .or.. ..r..
prgrg .rgrg .rgrg .rgrg .rgrg .r.rg .r.r.
gggpr gggpr ggg.r ggg.r ggg.r ggg.r ....r
oyyor oyyor oyyor oyyor oyyor oyyor ....r
.r.p. .r.p. .r.p. .r... .r... .r... .r...
Isso é código-golfe , então o código mais curto em bytes ganha
Regras TL; DR:
- O envio pode ser um programa ou função completo
- A entrada pode ser obtida em qualquer formato razoável (string, lista, matriz, etc.) por qualquer método razoável (STDIN, argumentos de função, etc.). No entanto, deve haver alguma delimitação entre linhas
- A saída deve ser produzida no mesmo formato da entrada por qualquer método razoável (STDOUT, retorno da função, ect.). Saída intermediária pode ou não ser delimitada
- A primeira saída será a primeira entrada
- Os espaços à direita devem ser preservados
- Qualquer ordem de cores pode ser usada (lista na sua resposta)
- Qualquer pino da cor atual pode ser consumido
- A última saída será apenas sua cor e espaços favoritos
- Se possível, inclua um link para um compilador online para testar seu envio