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

Reply via email to