advent of code 2017
1.0.0
Mi objetivo, como el año pasado, es hacer cada día en un idioma diferente. Veremos lo que pasa. Podría regresar y hacer múltiples soluciones por un día si lamento no haber hecho algo en APL o LISP.
Debo agregar el descargo de responsabilidad de que muchas de estas soluciones no son idiomáticas en los idiomas elegidos. A veces porque desconoce las convenciones, y a veces porque las estoy desafiando activamente.
Previamente.
s ← "123123" ⋄ +/⍎¨"0",s/⍨s=s⌽⍨2÷⍨⍴s APL+/ ((#~(=>.))@(#~(1&~:))@,@(%/]))"1 is en Jsum(1 for l in f if len({''.join(sorted(w)) for w in l.split()}) == len(l.split()))BOUNDfor (size_t i = 0; i < N; ++n) i += j[i] <3 ? j[i]++ : j[i]--;Parte de la discusión sobre esto lleva a la demostración de algunos de estos como comprensiones (excesivamente individuales) de la lista de Python:
with open ( 'day1.in' ) as f : ds = [ int ( c ) for c in f . readline (). strip ()]
r = 1 # or len(ds)/2 for part 2
sum ( a for ( a , b ) in zip ( ds , ds [ r :] + [ ds [: r ]]) if a == b ) with open ( 'day2.in' ) as f : ls = [[ int ( i ) for i in line . strip (). split ()] for line in f ]
sum ( max ( row ) - min ( row ) for row in ls )
sum ([ q // d for q in row for d in row if q != d and 0 == q % d ][ 0 ] for row in ls ) with open ( 'day4.in' ) as f : sum ( 1 for l in f if len ( set ( l . split ())) == len ( l . split ()))
with open ( 'day4.in' ) as f : sum ( 1 for l in f if len ({ '' . join ( sorted ( w )) for w in l . split ()}) == len ( l . split ())) > >> with open ( "day5.in" ) as f : jumps = [ int ( i ) for i in f ]
> >> i , n = 0 , 0
> >> while 0 <= i < len ( jumps ): j = i + jumps [ i ]; jumps [ i ] = jumps [ i ] + ( 1 if jumps [ i ] < 3 else - 1 ); n += 1 ; i = j
> >> print ( n )