advent of code 2017
1.0.0
Meu objetivo, como no ano passado, é fazer todos os dias em um idioma diferente. Veremos o que acontece. Eu posso voltar e fazer várias soluções por um dia se me arrepender de não fazer algo em APL ou LISP.
Devo acrescentar o aviso de que muitas dessas soluções não são idiomáticas nos idiomas escolhidos. Às vezes, porque não tenho consciência das convenções, e às vezes porque as estou desafiando ativamente.
Anteriormente.
s ← "123123" ⋄ +/⍎¨"0",s/⍨s=s⌽⍨2÷⍨⍴s em APL+/ ((#~(=>.))@(#~(1&~:))@,@(%/]))"1 is em 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]--;Algumas das discussões sobre isso levam a demonstrar algumas delas como compreensões (excessivamente não -photônicas) da 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 )