Bonjour aidé moi s'il vous plaît

En épreuve machine de demi-finale, vous soumettrez des solutions pour divers problèmes. On vousdonne six variables entières représentant trois heures de soumission (données sous la forme de deux
entiers, l’un pour les heures et l’autre pour les minutes). Écrivez une fonction qui détermine l’heure
de la première soumission. Les trois heures données à votre programme seront toujours différentes.
## Entrée Une liste de trois couples d’entier, le premier étant l’heure de soumission et le second,
les minutes. Sur chaque ligne, les deux entiers seront séparés par un espace.

Sortie
Renvoyez 1, 2, ou 3, si la première, la deuxième, ou la troisième heure est la première soumission.

#Exemples d'entrée/sortie
# Dans la console Python
soumission=[(10,48),(9,3),(9,39)]
timeStamps(soumission)
2


Sagot :

Réponse :

Bonjour, sur quel point as tu du mal ?

Si je comprends bien, il suffit juste de comparer 3 "heures" pour déterminer la plus petite ?

Une version naive serait de comparer d'abord les heures à chaque fois, puis les minutes, avec plein de if else.

Je te propose une version plus maligne, qui consiste à d'abord transformer les couples d'entiers en un nombres qui représenteront une heure, pour pouvoir ensuite simplement comparer ces nombres. Pour transformer le couple en un seul nombre, on peut par exemple le convertir en minutes en multipliant le nombre d'heures par 60 et en lui rajoutant les minutes restantes. Par exemple, 1h30 deviendra 90 (minutes), et 3h09 deviendra 189 (minutes).

def timeStamps(soumission):

   L=[]

   for couple in soumission:

       L.append(60*couple[0]+couple[1])

   m = min(L) #la fonction min renvoie la plus petite valeur d'une liste

   numero = L.index(m) #L.index(nombre) renvoie l'indice auquel on trouve le nombre cherché dans la liste L

   return (numero+1)

soumission=[(10,48),(9,3),(9,39)]

print(timeStamps(soumission))