Cette semaine, c'est Damien qui vous propose un #KataOfTheWeek : Courbes de Lance
Briefing du Kata : Imaginons que tu es propriétaire d'un compte Netflix à 4 écrans simultanés. Grand seigneur que tu es, tu as partagé tes identifiants avec plein de gens (en tout cas plus de 3 autres personnes), mais comme tu es prévoyant, tu veux leur envoyer le planning du nombre d'écrans dont tu as besoin, et eux se débrouillent entre eux pour se partager le reste des écrans.
Par exemple, dans la semaine du lundi 05/07/2021 au dimanche 11/07/2021:
- exigence A: tu veux toujours au minimum 1 écran pour toi
- exigence B: le mardi de 20h00 à 00h00, c'est la soirée cinéma "chacun de son côté" de tes parents, donc il te faut 2 écrans de plus
- exigence C: exceptionnellement, tu as promis à ton petit frère de lui réserver un écran ce même mardi à partir de 22h00 jusqu'au lendemain à 02h00
- exigence D: ce même mercredi, ta soeur a besoin d'un écran pour regarder un film avec son copain de 02h00 à 04h00.
Si on combine toutes ces exigences, on obtient le planning suivant:
- de lundi 00h00 à mardi 20h00, il te faut 1 écran
- de mardi 20h00 à mardi 22h00, il te faut 3 écrans
- de mardi 22h00 à mercredi 00h00, il te faut 4 écrans
- de mercredi 00h00 à mercredi 04h00, il te faut 2 écrans
- de mercredi 04h00 jusqu'à la fin de la semaine, il te faut 1 écran.
Ton but est donc de créer une API (un module dans le langage de ton choix, pas une API HTTP) permettant de fournir une collection d'exigences et de récupérer le résultat du calcul du planning à partir de ces exigences.
Saurez-vous résoudre le problème ?
Bon courage !
Et voici une solution proposée par l'auteur en Java :
Votre équipe TakiVeille