Le 03/12/2024 à 15:08, Olivier Miakinen a écrit :
Solution du problème, ne pas lire tant que tu veux encore chercher.
En revanche, toute proposition d'amélioration est la bienvenue.
Ta solution de tri des crêpes est très intéressante et part du postulat que tu n'as qu'un seul tas. Je n'ai pas regardé la solution du livre « 15 énigmes ludiques pour Python » mais l'énoncé ne paraît pas dire qu'on ne doit travailler que sur un seul tas.
Dans ma solution, j'ai, à un moment donné , 3 tas :
crepe qui correspond aux crêpes non encore triées,
result qui correspond au tas de crêpes qui se trie progressivement
et temp qui est un tas temporaire duquel je retire la crêpe max que je mets dans résult. Pour simplifier, je retire cette crêpe max avec un bête remove dans crepe.
Dans la vraie vie, on peut imaginer que le cuistot a bien 3 assiettes devant lui et une seule spatule.
Accessoirement, j'ai simplifié en ayant une liste d'entiers dans crepe et pas des strings.
======================================================
import random
result=list()
crepe=list()
nb=int(input('Nombre de crêpes '))
#Calcul de la taille des crêpes de 0 à 9
crepes=str(random.randint(9**nb,10**nb))
crepe=[int(x) for x in crepes]
print(crepes)
print()
fin=False
while fin==False:
#Je prends la crêpe la plus garnde ainsi que la pile au--dessus
temp=crepe[0:crepe.index(max(crepe))+1]
temp.reverse()
crepe.remove(max(temp))
#J'ajoute à la pile reclassée (result) la crêpe la plus grande
result.insert(0,temp[0])
#Je retire cette crêpe la plus grande de la pile initiale
temp=temp[1:]
#temp.reverse()
print(crepe, '|',result)
if crepe==[]:
fin=True
======================================================
Avec 10 crêpes, j'ai ce résultat :
Nombre de crêpes 10
9686246886
[6, 8, 6, 2, 4, 6, 8, 8, 6] | [9]
[6, 6, 2, 4, 6, 8, 8, 6] | [8, 9]
[6, 6, 2, 4, 6, 8, 6] | [8, 8, 9]
[6, 6, 2, 4, 6, 6] | [8, 8, 8, 9]
[6, 2, 4, 6, 6] | [6, 8, 8, 8, 9]
[2, 4, 6, 6] | [6, 6, 8, 8, 8, 9]
[2, 4, 6] | [6, 6, 6, 8, 8, 8, 9]
[2, 4] | [6, 6, 6, 6, 8, 8, 8, 9]
[2] | [4, 6, 6, 6, 6, 8, 8, 8, 9]
[] | [2, 4, 6, 6, 6, 6, 8, 8, 8, 9]
-- DominiqueEsto quod es