Soy muy vago, así que trato de programar siempre mi microondas con la menor cantidad posible de pulsaciones de botones . Mi microondas tiene los siguientes botones:
- Un botón de "minuto más" que solo se puede presionar primero e implica "iniciar". Puede presionarse varias veces durante varios minutos, pero no agregará un minuto a una hora ingresada manualmente. Salida
+
- Un conjunto de 0-9 botones. La entrada de tiempo es MMSS (es decir, "130" significa 1 minuto y 30 segundos). Los segundos pueden variar de 0 a 99. Entonces "130" y "90" son entradas equivalentes. Obviamente cada minuto es de 60 segundos, incluso si la parte de segundos de la entrada excede 59. Salida
0
..9
- Un botón de "inicio" que debe presionarse para encender el microondas si la hora se ingresa manualmente. Salida
S
Mis paquetes de comida especifican el tiempo en MM: SS, por lo que el programa debe aceptar esa entrada.
Ejemplos
- 1:00 es
+
(recuerde "minuto más" implica comenzar) - 1:01 es
61S
(los segundos pueden exceder 59, pero "minuto más" no funciona junto con los dígitos; creo que este es un defecto de diseño en mi microondas) - 9:00 es
900S
(más corto que+++++++++
)
code-challenge
optimization
Ben Jackson
fuente
fuente
400S
o++++
?++++
gana. :)888S
más corto que928S
, pero900S
más corto que860S
? Voy a necesitar una geometría precisa de sus botones y cada una de sus posiciones.Respuestas:
APL
APL tiene una mala reputación de que es ilegible, lo cual no es el caso si no se juega al golf.
Las normas:
fuente
JavaScript
fuente
Perl
cumple con los requisitos,
pero no es cómo ingresaría los botones (por ejemplo, "860S" frente a "900S")maneja exactamente 60 segundos como un caso especialSalida
fuente
rubí
Observaciones:
ruby program-my-microwave-oven.rb
y se evalúa una prueba unitaria.ruby program-my-microwave-oven.rb 10:00
y escribe960S
Algunas observaciones sobre las reglas (y mi interpretación):
10:00
es960S
(9 minutos y 60 segundos -> 10 minutos).10:39
es999S
(9 minutos y 99 segundos -> 10 minutos y 39 segundos).4:00
lo prefiere++++
(menos movimientos de los dedos)fuente