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

Reply via email to