That made my solution a lot nicer! f=: 13 :'(*/0 1{(/:y){y)+2*+/(E=:+/(=/~i.$y)*1|."1*/~(/:y){y) f 2 3 4 58 g=: 13 :'(*/0 1{(/:y){y)+2*+/((<0 1)|:1|."1*/~(/:y){y)' g 2 3 4 58
Thanks, Linda -----Original Message----- From: programming-boun...@forums.jsoftware.com [mailto:programming-boun...@forums.jsoftware.com] On Behalf Of Don Kelly Sent: Thursday, December 10, 2015 6:59 PM To: programm...@jsoftware.com Subject: Re: [Jprogramming] advent of code - day 2 NuVoc (>0 1 )|: y Don On 12/10/2015 12:13 AM, Linda A Alvord wrote: > I'm just getting started on these and here is an elementary school solution. > > (I couldn't remember a shortcut to get a diagonal from a square matrix. > > f=: 13 :'(*/0 1{(/:y){y)+2*+/+/(=/~i.$y)*1|."1*/~(/:y){y' > > Linda > > -----Original Message----- > From: programming-boun...@forums.jsoftware.com > [mailto:programming-boun...@forums.jsoftware.com] On Behalf Of > Jan-Pieter Jacobs > Sent: Thursday, December 3, 2015 3:41 PM > To: programm...@jsoftware.com > Subject: Re: [Jprogramming] advent of code - day 2 > > My solutions to the Day2 problems: > > > Probably there's better solutions around, but well... > > > NB. the surface of a box is the product of 2 elements of each > permutation of sides > > NB. Needed paper surface > > s1a =: [: +/ (+/ + s1slack)@s1facesurf@s1parse NB. paper needed = sum > of surfaces + slack > > s1parse =: [: |: ([: ". ;. _1 'x', ]) ;. _2 NB. parse box sizes > > s1facesurf =: */@(}:"2)@((i.@!@#) A. ]) NB. face surfaces > > s1slack =: <./ NB. Slack space = smallest face > > > NB. Ribbon length > > s1b =: [: +/ (s1vol + s1faceperm)@s1parse NB. ribon = volume + > smallest perimeter > > s1vol =: */ NB. Volume > > s1faceperm=: ([: <./ +:@(+/)@(}:"2))@((i.@!@#) A. ]) NB. smallest > perimeter. > > > NB. input as text. > > > Best regards, > > > Jan-Pieter > > 2015-12-03 17:35 GMT+01:00 Thomas Costigliola <tcost...@gmail.com>: > >> Here's my solution to part 1. >> >> I=. /:~@:(do;._1)@:('x'&,);._2 ] 0 : 0 >> >> 3x11x24 >> >> 13x5x19 >> >> 1x9x27 >> >> 24x8x21 >> >> 6x8x17 >> >> ... >> >> ) >> >> >> M=. 7 3 $ 1 1 0 1 0 1 0 1 1 >> >> I +/@(+/@:(*/) . ^) |:M >> >> 1588178 >> >> >> >> >> On Thu, Dec 3, 2015 at 6:47 AM, Ryan Eckbo <ec...@cim.mcgill.ca> wrote: >> >>> And mine: >>> >>> # part 1 >>> Presents=. do each ('x'&cut);._2 freads'/tmp/input.txt' >>> sa=: 3 : '(l*w) + (2*l*w) + (2*w*h) + 2*h*l [ ''l w h''=. /:~y' >>> +/ sa"1 Presents >>> >>> # part 2 >>> ribbon=. +/@:+:@:}:@:(/:~)@:> >>> vol=. */@:> >>> +/ (vol + ribbon)"1 Presents >>> >>> Ryan >>> >>> >>> On 3 Dec 2015, at 13:54, Ric Sherlock wrote: >>> >>>> Here's mine: >>>> >>>> require 'tables/csv stats' >>>> parcels=: _99 ". > 'x' readdsv jpath '~temp/aoc_day2_inp.txt' >>>> >>>> NB. Part 1 >>>> +/ (<./ + [: +/ +:)"1 */"1 (0 1 , 1 2 ,: 0 2) {"_ 1 parcels >>>> >>>> NB. or... >>>> getFaceSides=: (2 comb 3) {"_ 1 ] >>>> calcFaceArea=: */"1@:getFaceSides >>>> calcPaper=: (<./ + +/@:+:)"1 >>>> calcTotalPaper=: +/@:calcPaper@calcFaceArea >>>> >>>> calcTotalPaper parcels >>>> >>>> NB. Part 2 >>>> +/ (*/"1 + ([: <./"1 [: (+/@:+:)"1 (2 comb 3)&{"_ 1)) parcels >>>> >>>> NB. or ... >>>> volume=: */"1 >>>> perimeters=: (+/@:+:)"1@getFaceSides >>>> calcRibbonLength=: (volume + <./"1@:perimeters) >>>> calcTotalRibbonLength=: +/@calcRibbonLength echo >>>> calcTotalRibbonLength parcels >>>> >>>> >>>> On Thu, Dec 3, 2015 at 3:36 PM, 'Pascal Jasmin' via Programming < >>>> programm...@jsoftware.com> wrote: >>>> >>>>> outfix is quite forgettable, but this is much more elegant than >>>>> what I did. >>>>> >>>>> >>>>> 1 */\. 2 3 4 >>>>> 12 8 6 >>>>> >>>>> >>>>> >>>>> ----- Original Message ----- >>>>> From: Joe Bogner <joebog...@gmail.com> >>>>> To: programm...@jsoftware.com >>>>> Sent: Wednesday, December 2, 2015 8:54 PM >>>>> Subject: Re: [Jprogramming] advent of code - day 2 >>>>> >>>>> Pascal's #2 is the answer to part 2 of the question. Both of his >>>>> answers match mine and yours matches my part one. >>>>> >>>>> Pascal - looks similar to mine, albeit compressed in a single >>>>> line, which is close to the original problem description >>>>> >>>>> Henry - I haven't figured the logic of yours out yet at a quick >>>>> glance, I will need to look closer >>>>> >>>>> Thank you both for sharing >>>>> >>>>> >>>>> On Wed, Dec 2, 2015 at 8:40 PM, Henry Rich <henryhr...@gmail.com> >>> wrote: >>>>>> The 2 versions give different results. >>>>>> >>>>>> Mine: >>>>>> >>>>>> i =. ".;._1@('x'&,);._2 wd 'clippaste' >>>>>> >>>>>> +/ (/:~@(1&(*/\.))"1 i) +/ . * 3 2 2 >>>>>> >>>>>> >>>>>> Henry Rich >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> On 12/2/2015 8:19 PM, 'Pascal Jasmin' via Programming wrote: >>>>>>> was wondering what took 7 lines, but its style >>>>>>> >>>>>>> 1: with input parsing >>>>>>> >>>>>>> +/ +/ (<./, 2&*)"1 */every@:(0 2&{ ; 1 2&{ ; 0 1&{)"1 ". > cutLF >> 'x' >>>>>>> rplc~ wdclippaste '' >>>>>>> >>>>>>> 2: >>>>>>> >>>>>>> +/ +/@(*/ , +:@(2 {. /:~))("1) ". > cutLF 'x ' rplc~ wdclippaste '' >>>>>>> >>>>>>> >>>>>>> >>>>>>> ----- Original Message ----- >>>>>>> From: Joe Bogner <joebog...@gmail.com> >>>>>>> To: programm...@jsoftware.com >>>>>>> Sent: Wednesday, December 2, 2015 7:37 PM >>>>>>> Subject: [Jprogramming] advent of code - day 2 >>>>>>> >>>>>>> building upon: >>>>>>> >> http://jsoftware.com/pipermail/programming/2015-December/043407.html, >>>>>>> but starting a new thread since the other one started to go in a >>>>>>> different direction. >>>>>>> >>>>>>> http://adventofcode.com/day/2 >>>>>>> >>>>>>> Here's my solution: >>>>>>> https://github.com/joebo/lang-lab/blob/master/j/advent2015/day2 >>>>>>> .ijs >>>>>>> >> --------------------------------------------------------------------- >> - >>>>>>> For information about J forums see >>> http://www.jsoftware.com/forums.htm >>>>> >>>>> >> --------------------------------------------------------------------- >> - >>>>>>> For information about J forums see >>> http://www.jsoftware.com/forums.htm >>>>>> >> --------------------------------------------------------------------- >> - >>>>>> For information about J forums see >> http://www.jsoftware.com/forums.htm >>>>> ----------------------------------------------------------------- >>>>> ----- For information about J forums see >> http://www.jsoftware.com/forums.htm >>>>> ----------------------------------------------------------------- >>>>> ----- For information about J forums see >> http://www.jsoftware.com/forums.htm >>>> ------------------------------------------------------------------ >>>> ---- For information about J forums see >>>> http://www.jsoftware.com/forums.htm >>> -------------------------------------------------------------------- >>> -- For information about J forums see >>> http://www.jsoftware.com/forums.htm >>> >> --------------------------------------------------------------------- >> - For information about J forums see >> http://www.jsoftware.com/forums.htm >> > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm