advent of code 2017
1.0.0
像去年一樣,我的目標是用不同的語言每天做。我們將看到會發生什麼。如果我後悔不在APL或LISP中做某事,我可能會回去做多種解決方案。
我應該補充說,這些解決方案中的許多不是慣用語言的語言。有時,因為我不知道慣例,有時因為我積極反抗它們。
之前。
s ← "123123" ⋄ +/⍎¨"0",s/⍨s=s⌽⍨2÷⍨⍴s+/ ((#~(=>.))@(#~(1&~:))@,@(%/]))"1 is在j中sum(1 for l in f if len({''.join(sorted(w)) for w in l.split()}) == len(l.split()))BOUND指令for (size_t i = 0; i < N; ++n) i += j[i] <3 ? j[i]++ : j[i]--;有關此討論的一些討論導致將其中的一些演示為(過於無調的)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 )