Introdução
Esse desafio consiste em encontrar o maior número removendo dígitos y do número original n que possui x dígitos.
Assumindo y=2 n=5263 x=4
, os possíveis números que removem y = 2 dígitos são:
[52, 56, 53, 26, 23, 63]
Portanto, o maior número é 63
qual deve ser a saída para este exemplo.
Outra lógica seria: para cada y, pesquise da esquerda para a direita o dígito que é o próximo dígito maior e remova-o; caso contrário, remova os últimos dígitos-y .
Usando y=3 n=76751432 x=8
para explicar:
y=3
76751432
-^------ remove 6 because right next 7 is greater
y=2
7751432
---^--- remove 1 because right next 4 is greater
y=1
775432
-----^ the search failed, then remove last y digits
result = 77543
Ambos os métodos explicados acima funcionam .. é claro, você também pode usar outro método :)
Desafio
O número n não terá mais de 8 dígitos e y sempre será maior que zero e menor que x .
Para evitar um formato estrito de entrada, você pode usar os valores: y n x
da maneira que preferir: como parâmetros em função, entrada bruta ou qualquer outra maneira válida. Só não se esqueça de dizer como você fez isso na sua resposta.
A saída deve ser o número do resultado.
Isso é código-golfe , a resposta mais curta em bytes vence.
Exemplo de entrada e saída
Novamente: você não precisa ser muito rigoroso :)
4 1789823 7 -> 983
1 54132 5 -> 5432
3 69314 5 -> 94
2 51794 5 -> 794
Editar
Alterei a ordem de entrada para refletir o fato de que alguns de vocês podem não precisar do valor x para resolver o problema. x agora é um valor opcional.
x
é uma informação inútil.
x
como entrada pode diminuir o código. (Caso em questão: a minha resposta Julia.)