General Discussions

Discuss a wide range of topics! Questions about the Alteryx Platform should be directed to the appropriate Product discussion forum.

Advent of Code 2020 - BaseA Style (Day 10)

Alteryx Certified Partner

Discussion thread for day 10 of the Advent of Code : https://adventofcode.com/2020/day/10

Alteryx Certified Partner

Well that made my head hurt, drew a few diagrams on paper and tried a few bits out in alteryx but no dice for part 2. Keen to see how it was possible!

16 - Nebula
16 - Nebula

Don't think you can brute force part 2... so a little thinking beforehand.

 

Spoiler
jdunkerley79_0-1607589502451.png


If you want the inner trick for part 2:

Spoiler
A block with steps 113 can have the first 1 removed => so 2 possibilities
A block with steps 1113 can have the first 1, second 1 or both removed => so 4 possibilities
A block with steps 11113 can have first, second, third, first & second, first & third or second & third removed => so 7 possibilities

My data set had no 111113 but think would be 13 possibilities

You can then product these possibilities together to get the total number of possibilities
Alteryx Certified Partner

Genius! I got stuck somewhere in the middle of identifying optional steps, and calculating how many valid next steps each individual step had, but got lost as to how to bring all of that together.

Alteryx
Alteryx

I think you can brute force if you reduce the problem on every iteration

 

Here is my iterative macro

 

Spoiler
AdamR_0-1607597123505.png

 

Full solution at https://gitlab.com/adriley/adventofcode2020-alteryx/-/blob/master/day10-part2.yxmd

Adam Riley
Principal Software Engineer
Tech Lead Core Engines, Alteryx
Alteryx Certified Partner
Alteryx Certified Partner

Struggled with Part 2, and found help on the adventofcode subreddit. Immediately tried to brute force it until I noticed the 'trillions'

Spoiler
workflowworkflowPart 1 iterativePart 1 iterative
Alteryx Certified Partner

Day 10!

 

Part1 was very easy. But Part 2 is.... I couldn't have Iterative approach.
My approach is calculating Combination Numbers. It is similar to @OllieClarke 's approach.

Spoiler

I tried to make all pattern, but it was failed.
And then, I try to calculate combination numbers.

clip.png

As anonymous user #1105310

 

Alteryx Certified Partner

Revisited part 2 after some reddit research and the hint from @jdunkerly

-- A nice explainer here https://www.reddit.com/r/adventofcode/comments/ka9pc3/2020_day_10_part_2_suspicious_factorisation/

Spoiler
10.png

Still feels a little shonky though as it wouldn't automatically handle longer chains of 1's up to a 3.
I went through a few different approaches in the disabled container but got lost until seeking help on the maths/logic.

 

16 - Nebula
16 - Nebula
Spoiler
I went for a lot of multi-row formula tools...
patrick_digan_0-1607606706852.png

 

12 - Quasar
12 - Quasar

Day 10 part A felt more like a day 1 question. 

 

Spoiler
cgoodman3_0-1607605979439.png


Still working on Part 2, I am currently stuck down a rabbit hole of thinking there is a brute force binary solution to it by trying to generate a series of 1,0s between record 1 and 104 to act as a T|F flag and then to run my multi row. However that's too big, so trying to slim it down by spotting patterns, for example I know my start and end are fixed. and there are repeating 1,1,3 and 1,1,1,3s and know from experience with some of the previous AoCs now looking for patterns.

Finally got there with the second part.

Spoiler

Took the idea of finding the patterns using regexcountmatch and then unwinding the fact that 3,1,1 appears in 3,1,1,1. It did mean to get the right answer I needed to hard code for sole 1,1 which occurs at the start of my workflow.

cgoodman3_1-1607611263159.png

 

 

Check out my collaboration with fellow ACE Joshua Burkhow at AlterTricks.com