added exercise 2
This commit is contained in:
		
							
								
								
									
										35
									
								
								src/ex2_tv.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								src/ex2_tv.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,35 @@ | ||||
| """ | ||||
| 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 | ||||
		Reference in New Issue
	
	Block a user