35 lines
1.2 KiB
Python
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 |