2025-01-16 11:01:55 +01:00

35 lines
1.2 KiB
Python

"""
Question 2 - Un clic pour les regarder toutes
But : calculer le nombre maximum d'émissions télé complètes consécutive que l'on
peut enregistrer sur un disque dur de taille fixe.
Approche :
Nous pouvons utiliser une "fenêtre" que l'on fait "glisser" sur les différentes
émissions, indiquant la tranche de programmation que l'on peut enregistrer.
En partant de la première émission, nous procédons ainsi:
- Si nous pouvons ajouter l'émission en entier à l'enregistrement sans dépasser
la taille du disque, nous l'ajoutons
- Sinon, il faut enlever au moins une émission du début de l'enregistrement pour
pouvoir ajouter celle-ci.
Nous parcourons ainsi tout le programme de la chaîne, en gardant le plus grand
nombre d'émissions enregistrables.
"""
def startRecordingAt(tv_shows: list[int], hard_drive_memory: int) -> int:
maximum: int = 0
recording: list[int] = []
duration: int = 0
for show in tv_shows:
recording.append(show)
duration += show
while duration > hard_drive_memory:
show2: int = recording.pop(0)
duration -= show2
maximum = max(maximum, len(recording))
return maximum