Esse desafio está relacionado ao lançamento de panquecas .
Você já deve ter ouvido falar da seleção de panquecas , onde uma pilha de panquecas é classificada por tamanho, inserindo uma espátula na pilha e lançando todas as panquecas acima da espátula, até que as panquecas sejam classificadas da menor para a maior no prato. O problema da panqueca queimada é um pouco diferente. Todas as panquecas agora têm um lado queimado e o lado queimado de cada panqueca deve ficar de frente para o prato depois que a triagem for concluída.
Por exemplo, dada a seguinte pilha (tamanho da panqueca à esquerda. 0
Significando lado queimado para baixo e 1
significando lado queimado para cima à direita):
1 0
3 1
2 1
Você pode virar a pilha inteira para pegar 20 30 11
, virar as duas primeiras para pegar 31 21 11
e virar a pilha inteira novamente para pegar 10 20 30
uma pilha classificada de panquecas queimadas. Esta sequência de movimentos, flip 3, flip 2, flip 3, pode ser representada como 3 2 3
.
O desafio
- Dada uma variedade de tamanhos de panquecas (não necessariamente exclusivos) e suas orientações, produza qualquer sequência válida de classificação de panquecas queimadas, ou seja, uma sequência de inversões que leva à pilha de panquecas sendo classificadas do menor para o maior com os lados queimados para baixo.
- A entrada e a saída podem ter qualquer formato são com separadores, mas especifique quais formatos você usa e indique qual extremidade do seu formato de entrada é a parte superior da pilha (TOS).
- É permitido virar zero panquecas.
- É permitida a mistura de separadores na entrada / saída.
Casos de teste
Para todos os casos de teste a seguir, a entrada é uma lista e a saída é uma sequência separada por espaço e o TOS está à esquerda.
[[1, 0], [3, 1], [2, 1]]
"3 2 3"
[[5, 1], [3, 0], [4, 1], [2, 1], [1, 0]]
"5 3 4 1 3 2 1"
[[5, 1], [3, 0], [3, 0], [1, 1]]
"4 3 2 3"
Como sempre, se algo não estiver claro ou incorreto, informe-me nos comentários. Boa sorte e bom golfe!