Mon réveil
Je suis américain, tout comme mon réveil (numérique). Pour régler l'alarme, elle démarre à l'heure qu'elle était précédemment. Appuyer sur le bouton des heures le fait monter d'une heure et appuyer sur le bouton des minutes le fait monter d'une minute. Appuyer sur les deux boutons en même temps le réinitialise à minuit (00h00) et compte comme deux pressions de bouton.
Lorsque les heures dépassent leur cap (12), il se remet à 1 et fait basculer la lumière AM / PM. Lorsque les minutes dépassent leur cap (59), elles se remettent à 0, sans affecter les heures.
La tâche
Votre tâche consiste, compte tenu d'une heure de début et d'une heure cible, à sortir le nombre optimal de pressions de boutons nécessaires pour régler mon alarme sur l'heure cible.
Vous pouvez saisir des informations dans le format qui vous convient le mieux. Les seules données dont votre programme devrait avoir besoin sont les heures et les minutes, pour les deux entrées. Cela signifie que vous, par exemple, pouvez prendre des données en millisecondes depuis l'époque et extraire les heures et les minutes, mais vous ne pouvez pas encoder quoi que ce soit en année, mois, seconde, etc. Notez que si vous pouvez, par exemple, saisir en utilisant "heure militaire" (ou heure régulière pour la plupart du monde), mais cela ne change pas le fonctionnement de mon horloge.
Exemples
1:15 pm -> 2:30 am
Vous pouvez appuyer sur les deux boutons pour réinitialiser à 12 h 00, puis augmenter à 2 h 30, ce qui correspond à des 2+2+30 = 34
pressions sur les boutons. Vous pouvez également augmenter jusqu'à 2 h 30, ce qui correspond à des 13+15 = 28
pressions sur des boutons. Par conséquent, votre sortie est 28
.
3:58 am -> 4:02 am
Vous pouvez réinitialiser et incrémenter, ce qui correspond à des 2+4+2 = 8
pressions sur des boutons. Vous pouvez également augmenter, ce qui serait des 1+4 = 5
appuis sur les boutons. Par conséquent, votre sortie est 5
.
10:55 pm -> 1:00 am
Vous pouvez réinitialiser et incrémenter, ce qui correspond à des 2+1 = 3
pressions sur des boutons. Vous pouvez également augmenter, ce qui serait des 3+5=8
appuis sur les boutons. Par conséquent, votre sortie est 3
.
1:00 am -> 1:59 pm
Vous pouvez réinitialiser et incrémenter, mais ce serait trois pressions de plus que l'incrémentation. Par conséquent, votre sortie est 12+59 =
71
.
Cas de test
Current Target = Output
1:15pm 2:30am = 28
3:58am 4:02am = 5
10:55pm 1:00am = 3
1:00am 1:59pm = 71
12:00am 12:00am = 0
6:51pm 12:00am = 2
2:01pm 11:00pm = 25
2:01pm 11:01pm = 9
12:59am 12:01am = 2
11:50am 12:00pm = 11