def rendu_monnaie_solution(pieces, s):
"""renvoie une liste minimale de pièces pour faire
la somme s avec le système pieces"""
# on initialise nb et sol avec ce qui
# correspond à la solution 1+1+...+1 (n fois)
nb = [n for n in range(s + 1)]
sol = [[1]*n for n in range(s + 1)]
for n in range(1, s + 1):
for p in pieces:
if p <= n and 1 + nb[n - p] < nb[n]:
nb[n] = 1 + nb[n - p]
sol[n] = sol[n - p].copy()
sol[n].append(p)
return sol[s]