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: [email protected]
[mailto:[email protected]] On Behalf Of Don Kelly
Sent: Thursday, December 10, 2015 6:59 PM
To: [email protected]
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: [email protected]
> [mailto:[email protected]] On Behalf Of
> Jan-Pieter Jacobs
> Sent: Thursday, December 3, 2015 3:41 PM
> To: [email protected]
> 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 <[email protected]>:
>
>> 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 <[email protected]> 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 <
>>>> [email protected]> 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 <[email protected]>
>>>>> To: [email protected]
>>>>> 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 <[email protected]>
>>> 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 <[email protected]>
>>>>>>> To: [email protected]
>>>>>>> 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