La réponse la plus courte l'emporte.
Il doit être trié et dans les 24 heures. La dernière ligne n'a pas de virgule.
La sortie doit être la suivante:
'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
la source
la source
Réponses:
Pyth, 26 octets
Manifestation.
Nous commençons par le produit cartésien de
range(24)
(U24
) avec la chaîne"03"
.Ensuite, nous mappons ces valeurs à la substitution de formatage de chaîne appropriée (
m%"'%02d:%s0',"d
).Ensuite, les chaînes résultantes sont jointes sur le caractère de nouvelle ligne (
jb
).Enfin, nous supprimons la virgule de fin (
P
) et imprimons.la source
Befunge-93, 63 octets
(animation réalisée avec BefunExec )
la source
Bash:
584746 caractèresla source
echo \'{00..23}:{0,3}0\'|sed 's/ /,\n/g'
40 caractères. Agréable. Merci. Mais je préfère faire usage de sabash
propre force.printf "'%s',\n" {00..23}:{0,3}0
printf "'%s'\n" {00..23}:{0,3}0|sed $\!s/$/,/
est de 45 octetsCJam,
31 3029 octetsC'est assez simple en utilisant le formatage printf:
Essayez-le en ligne ici
la source
Python 2,
5856 octetsComme la réponse de sentiao mais en utilisant une
for
boucle, avec découpage pour supprimer la virgule. Merci à @grc d'avoir supprimé deux octets.la source
"'%02d:%s0',"[:57-i]
Java - 119 octets
J'ai commencé avec StringJoiner de Java 8, mais cela signifie inclure une instruction d'importation, j'ai donc décidé de le faire à l'ancienne:
Peut-être que cela peut être amélioré en se débarrassant des multiples mots
String
-System
clés et occurrences.la source
a
, déplacez l'i
incrément, perdez lesfor
accolades et déplacez la virgule / la nouvelle ligne au début (ce qui vous permet d'utiliser le plus courtsubstring
et de vous en débarrasserlength()
). Puisque les fonctions sont autorisées par défaut, vous pouvez le rendre encore plus court en éliminant le passe-partout: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));}
Encore un peu plus si vous le faites simplement renvoyer la chaîne au lieu de l'imprimer, mais cela semble aller à l'encontre de l'esprit, sinon de la lettre.String.format
pours.format
. Votre compilateur / IDE peut s'en plaindre, mais cela fonctionne;)Rubis,
94615651Merci à @blutorange (encore) pour son aide au golf!
la source
puts (0..47).to_a.map{|h|"'%02d:%02d'"%[h/2,h%2*30]}.join","
(il y a une nouvelle ligne après la dernière virgule)puts Array.new(48){|i|"'%02d:%02d'"%[i/2,i%2*30]}.join','
.join
par*
:)Perl,
52504845BAvec l'aide de ThisSuitIsBlackNot :)
la source
JAVA
9594 octetsJ'adore le fait que printf existe en Java:
Ungolfed
EDIT Remplacé le
','
par44
la source
Pyth,
3231 octetsJ'ai joué au golf en python, mais il s'est avéré être exactement la même chose que la réponse du Sp3000. J'ai donc décidé d'essayer Pyth:
C'est une traduction exacte de la réponse Sp3000:
C'est mon premier essai sur Pyth, alors s'il vous plaît, éclairez-moi à propos de cette économie d'un octet.
la source
PHP, 109 octets
la source
Rubis,
5451 octetsla source
\n
à des sauts de ligne réels et en supprimant l'espace entrejoin
et"
. En revanche, notez que la sortie spécifiée a des zéros non significatifs pour les heures.puts
en$><<
(sans espace) et.join
avec*
. Cependant, vous avez toujours le principal problème zéro pour les heures.C,
116,115,101,100,95,74,73, 71Peut être en mesure de gratter quelques octets de plus de cela ...
la source
T-SQL,
319307305 octetsVersion non-golfée:
la source
Pyth, 34 octets
Cela peut certainement être amélioré.
Essayez-le en ligne: Pyth Compiler / Executor
Explication:
la source
j+\,bm%"'%02d:%s0'",/d2*3%d2 48
avec formatage de chaînePython 2, 69 octets
C'est assez évident, mais voici une explication:
'0'
et'3'
au format chaîne est plus courte qu'une liste%02d
fait le rembourrage pourh
m
n'a pas besoin de rembourrage car le caractère alterné est sur une position fixe'\n'.join()
résout les exigences de la ligne finaleJe n'ai aucune idée si cela peut être fait plus court (en Python 2).par Sp3000, 61 octets:
print',\n'.join("'%02d:%s0'"%(h/2,h%2*3)for h in range(48))
la source
print',\n'.join("'%02d:%s0'"%(h/2,h%2*3)for h in range(48))
m
. (C'est aussi 59 octets, pas 61)Haskell, 85 octets
Nécessite malheureusement
printf
un octet 19import
, donc je ne peux pas l'utiliser.la source
Julia:
656461 caractèresJulia: 64 caractères
(Conservé ici pour montrer la belle
for
syntaxe de Julia .)la source
Fortran 96
Standard abuse of types & requirement only for the final
end
for compiling. Sadly, due to implicit formatting, the'(a)'
in the finalprint
statement is required. Still, better than the C and C++ answers ;)la source
JavaScript (ES6),
7786+1 bytesDidn't realize there had to be quotes on each line (+1 is for
-p
flag with node):old solution:
ungolfed version (using a for loop instead of
Array.from
):la source
Array.from(Array(48),(d,i)=>`'${i>19?"":0}${0|i/2}:${i%2*3}0'`).join`,\n`
. Replace \n with an actual newline.golflua
5251 charsUsing ascii 44 =
,
and 0 a space saves a character.An ungolfed Lua version would be
The
if
statement is much like the ternary operatora > b ? 44 : 0
.la source
C# - 120 bytes
la source
Python,
60 5864 bytesUngolfed:
Try it online here.
la source
𝔼𝕊𝕄𝕚𝕟, 39 chars / 67 bytes (non-competing)
Try it here (Firefox only).
Not a single alphabetical character in sight...
la source
PHP,
69 7062 bytesTry it online
Outputting
'23:30'
at the end is a bit lame, and so is closing the php context using?>
without opening or re-opening it. An cleaner alternative (but 65 bytes) would be:Try it online
Thank you @Dennis for the tips. Alternative inspired by the contribution of @ismael-miguel.
la source
<?...?>'23:30'
saves three bytes. Also, you can replace\n
with an actual newline.Swift, 74 bytes
Updated for Swift 2/3...and with new string interpolation...
la source
Javascript, 89 bytes
la source
Array.push()
supports? ;)for(i=a=[];i<24;)a.push((x=("0"+i++).slice(-2))+":00",x+":30");alert(a.join(",\n"))
"'"+
pieces to one:for(i=a=[];i<24;)a.push((x="'"+("0"+i++).slice(-2))+":00'",x+":30'");alert(a.join(",\n"))
Python 2: 64 bytes
la source
print',\n'.join("'%02d:00',\n'%02d:30'"%(h,h)for h in range(24))
Ruby - 52 bytes
la source
.join
for*
... It's common courtesy to instead of just posting a new answer with a minor improvement, to suggest the improvement to the original poster. See meta.codegolf.stackexchange.com/questions/75/…$><<
!Python 2,
7465 bytesWe generate a 2 line string for each hour, using text formatting:
This code is fairly clear, but the clever indexing and integer maths in the answer by Sp3000 gives a shorter solution.
la source
"'%02u:00',\n'%02u:30'"%(h,h)
print',\n'.join("'%02u:%02u'"%(h,i)for h in range(24)for i in[0,30])