(<0 1)|: y Nuvoc is correct: http://www.jsoftware.com/jwiki/Vocabulary/Idioms#Extract_The_Diagonal_Of_A_Table and http://www.jsoftware.com/jwiki/Vocabulary/barco#More_Information
R.E. Boss > -----Original Message----- > From: programming-boun...@forums.jsoftware.com [mailto:programming- > boun...@forums.jsoftware.com] On Behalf Of Don Kelly > Sent: vrijdag 11 december 2015 0:59 > 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