La respuesta más corta gana.
Debe ser ordenado, y en 24 horas. La línea final no tiene una coma.
La salida debe ser la siguiente:
'00:00',
'00:30',
'01:00',
'01:30',
'02:00',
'02:30',
'03:00',
'03:30',
'04:00',
'04:30',
'05:00',
'05:30',
'06:00',
'06:30',
'07:00',
'07:30',
'08:00',
'08:30',
'09:00',
'09:30',
'10:00',
'10:30',
'11:00',
'11:30',
'12:00',
'12:30',
'13:00',
'13:30',
'14:00',
'14:30',
'15:00',
'15:30',
'16:00',
'16:30',
'17:00',
'17:30',
'18:00',
'18:30',
'19:00',
'19:30',
'20:00',
'20:30',
'21:00',
'21:30',
'22:00',
'22:30',
'23:00',
'23:30'
code-golf
kolmogorov-complexity
sequence
Espen Schulstad
fuente
fuente
Respuestas:
Pyth, 26 bytes
Demostración.
Comenzamos con el producto cartesiano de
range(24)
(U24
) con la cadena"03"
.Luego, asignamos estos valores a la sustitución de formateo de cadena apropiada (
m%"'%02d:%s0',"d
).Luego, las cadenas resultantes se unen en el carácter de nueva línea (
jb
).Finalmente, eliminamos la coma final (
P
) e imprimimos.fuente
Befunge-93, 63 bytes
(animación realizada con BefunExec )
fuente
Bash:
584746 caracteresfuente
echo \'{00..23}:{0,3}0\'|sed 's/ /,\n/g'
de 40 caracteres. Agradable. Gracias. Pero prefiero hacer uso debash
la propia fuerza.printf "'%s',\n" {00..23}:{0,3}0
printf "'%s'\n" {00..23}:{0,3}0|sed $\!s/$/,/
es de 45 bytesCJam,
31 3029 bytesEsto es bastante sencillo con el formato printf:
Pruébalo en línea aquí
fuente
Python 2,
5856 bytesComo la respuesta de sentiao pero usando un
for
bucle, con cortes para eliminar la coma Gracias a @grc por eliminar dos bytes.fuente
"'%02d:%s0',"[:57-i]
Java - 119 bytes
Comencé con StringJoiner de Java 8, pero eso significa incluir una declaración de importación, así que decidí hacerlo a la antigua usanza:
Quizás esto pueda mejorarse al deshacerse de las múltiples palabras clave
String
y de ocurrenciaSystem
.fuente
a
, mueva eli
incremento, pierda lasfor
llaves y mueva la coma / nueva línea al principio (lo que le permite usar el más cortosubstring
y deshacerse de éllength()
). Dado que las funciones están permitidas de manera predeterminada, puede hacerlo aún más corto eliminando la repetitiva:void f(){String s="";for(int i=0;i<24;)s+=String.format(",\n'%02d:00',\n'%02d:30'",i,i++);System.out.print(s.substring(2));}
incluso un poco más si hace que devuelva la cadena en lugar de imprimirla, pero eso parece ir en contra del espíritu, si no la letra.String.format
as.format
. Su compilador / IDE puede quejarse de ello, pero funciona;)Rubí,
94615651¡Gracias a @blutorange (nuevamente) por su ayuda en el golf!
fuente
puts (0..47).to_a.map{|h|"'%02d:%02d'"%[h/2,h%2*30]}.join","
(hay una nueva línea después de la última coma)puts Array.new(48){|i|"'%02d:%02d'"%[i/2,i%2*30]}.join','
.join
con*
:)Perl,
52504845BCon la ayuda de ThisSuitIsBlackNot :)
fuente
JAVA
9594 bytesMe encanta el hecho de que printf existe en Java:
Sin golf
EDITAR Reemplazó el
','
con44
fuente
Pyth,
3231 bytesJugué al golf en Python, pero resultó ser exactamente lo mismo que la respuesta de Sp3000. Así que decidí probar Pyth:
Es una traducción exacta de la respuesta de Sp3000:
Es mi primera visita a Pyth, así que por favor, ilumíneme sobre ese ahorro de 1 byte.
fuente
PHP, 109 bytes
fuente
Ruby,
5451 bytesfuente
\n
a nuevas líneas reales y eliminando el espacio entrejoin
y"
. Por otro lado, tenga en cuenta que la salida especificada tiene ceros a la izquierda para las horas.puts
a$><<
(sin espacio) y.join
con*
. Sin embargo, todavía tiene el principal problema de cero por horas.C,
116,115,101,100,95,74,73, 71Es posible que pueda eliminar algunos bytes más de esto ...
fuente
T-SQL,
319307305 bytesVersión sin golf:
fuente
Pyth, 34 bytes
Esto definitivamente se puede mejorar.
Pruébelo en línea: Pyth Compiler / Executor
Explicación:
fuente
j+\,bm%"'%02d:%s0'",/d2*3%d2 48
con formato de cadenaPython 2, 69 bytes
Muy obvio, pero aquí hay una explicación:
'0'
y'3'
en formato de cadena es más corto que una lista%02d
hace el relleno parah
m
no necesita relleno ya que el carácter alternativo está en una posición fija'\n'.join()
resuelve los requisitos de la línea finalNo tengo idea si se puede hacer más corto (en Python 2).por Sp3000, 61 bytes:
print',\n'.join("'%02d:%s0'"%(h/2,h%2*3)for h in range(48))
fuente
print',\n'.join("'%02d:%s0'"%(h/2,h%2*3)for h in range(48))
m
. (También son 59 bytes, no 61)Haskell, 85 bytes
Lamentablemente
printf
requiere un byte de 19import
, por lo que no puedo usarlo.fuente
Julia:
656461 caracteresJulia: 64 caracteres
(Seguí aquí para mostrar la buena
for
sintaxis de Julia ).fuente
Fortran 96
Abuso estándar de tipos y requisitos solo para el final
end
para la compilación. Lamentablemente, debido al formato implícito, se requiere la declaración'(a)'
finalprint
. Aún así, mejor que las respuestas C y C ++;)fuente
JavaScript (ES6),
7786 + 1 bytesNo me di cuenta de que tenía que haber comillas en cada línea (+1 es para el
-p
indicador con nodo):vieja solución:
versión sin golf (usando un bucle for en lugar de
Array.from
):fuente
Array.from(Array(48),(d,i)=>`'${i>19?"":0}${0|i/2}:${i%2*3}0'`).join`,\n`
. Reemplace \ n con una nueva línea real.golflua
5251 caracteresUsando ascii 44 =
,
y 0 un espacio ahorra un personaje.Una versión de Lua sin golf sería
La
if
declaración es muy parecida al operador ternarioa > b ? 44 : 0
.fuente
C # - 120 bytes
fuente
Python,
60 5864 bytesSin golf:
Pruébelo en línea aquí .
fuente
𝔼𝕊𝕄𝕚𝕟, 39 caracteres / 67 bytes (no competitivos)
Try it here (Firefox only).
Ni un solo carácter alfabético a la vista ...
fuente
PHP,
69 7062 bytesPruébalo en línea
Dar salida
'23:30'
al final es un poco escaso, y por lo tanto se está cerrando el contexto PHP usando?>
sin abrir o volver a abrirlo. Una alternativa más limpia (pero 65 bytes) sería:Pruébalo en línea
Gracias @ Dennis por los consejos. Alternativa inspirada en el aporte de @ ismael-miguel.
fuente
<?...?>'23:30'
Guarda tres bytes. Además, puede reemplazar\n
con una nueva línea real.Rápido, 74 bytes
Actualizado para Swift 2/3 ... y con una nueva interpolación de cadenas ...
fuente
Javascript, 89 bytes
fuente
Array.push()
soporta? ;)for(i=a=[];i<24;)a.push((x=("0"+i++).slice(-2))+":00",x+":30");alert(a.join(",\n"))
"'"+
piezas a una:for(i=a=[];i<24;)a.push((x="'"+("0"+i++).slice(-2))+":00'",x+":30'");alert(a.join(",\n"))
Python 2: 64 bytes
fuente
print',\n'.join("'%02d:00',\n'%02d:30'"%(h,h)for h in range(24))
Ruby - 52 bytes
fuente
.join
para*
... Es una cortesía común en lugar de simplemente publicar una nueva respuesta con una mejora menor, para sugerir la mejora del póster original. Ver meta.codegolf.stackexchange.com/questions/75/…$><<
!Python 2,
7465 bytesGeneramos una cadena de 2 líneas por cada hora, usando el formato de texto:
Este código es bastante claro, pero la indexación inteligente y las matemáticas enteras en la respuesta de Sp3000 ofrecen una solución más corta.
fuente
"'%02u:00',\n'%02u:30'"%(h,h)
print',\n'.join("'%02u:%02u'"%(h,i)for h in range(24)for i in[0,30])