Free Trial

General Discussions

Discuss any topics that are not product-specific here.

Advent of Code 2023 Day 4 (BaseA Style)

AlteryxCommunityTeam
Alteryx Community Team
Alteryx Community Team

Discussion thread for day 4 of the Advent of Code - https://adventofcode.com/2023/day/4

48 REPLIES 48
JarrodT
Alteryx
Alteryx

I accidentally mislabeled my batch macro, so had the opportunity to use "Find Missing Macros" function, which worked beautifully. I went the route of a batch macro with a nested iterative macro - not sure both were needed, but it gets the job done. 

Spoiler
image.png
NicoleJ
Alteryx
Alteryx

Another fun one! AND it's macro time... I do love a good iterative macro in the morning!!

 

 

Spoiler
Part 1 was pretty straightforward solve, used my new GetPart formulas for the initial parsing into cards > my hand > winning hand, and then fun to find an excuse to use the POW function (ka-POW!!!!)

Part 2 ended up being simpler than expected once I paused and made sure to annotate a few things and understand my steps first before launching into my iterative macro. I love a good iterative macro use case, and this was a perfect one!!

Day4.1.png
Day4.2.png

 

Cheers!
NJ
Sr. Manager, Product Management, Designer
Alteryx
mmontgomery
11 - Bolide
11 - Bolide

Day4. I Macro is brute force to solve it 'faster'

 

Spoiler
Day4_base.pngDay4_I_macro.png

 

 

patrick_digan
17 - Castor
17 - Castor

Similar non-macro as @PangHC . I'm forever grateful to @danilang who showed me the power of the multi-row formula tool for the AOC challenges many years ago. 

Spoiler
 

image.png
image.png

Kenda
16 - Nebula
16 - Nebula
Spoiler
attempted to go the non-macro route at first then threw that idea out the window
image.png

image.png
 
DavidP
17 - Castor
17 - Castor

Not my best work, but it's done! Iterative macro took 13 minutes to run, but I don't care!!!

 

Spoiler
aoc d4.png

aoc d4 macro.png
Carolyn
12 - Quasar
12 - Quasar

Oof - I predict I'll be good at Iterative Macros by the time the challenge is finished. Thanks to @phottovy for posting your solution file. After my attempts failed miserably, yours was super helpful! We'll see how it goes next Iterative Macro challenge, but I feel like I understand them way better than I did 2.5 hours ago :) 

 

Spoiler
2023-12-04_09-31-42.png


2023-12-04_09-31-33.png

  

afv2688
16 - Nebula
16 - Nebula

This one took a while to think how to do it with no macro :)

 

Spoiler
Sin título.png
FrederikE
13 - Pulsar

 

Spoiler
Screenshot 2023-12-04 193018.png

Screenshot 2023-12-04 193101.png

  

mceleavey
17 - Castor
17 - Castor

Ok, so my iterative macro was being extremely naughty, and so I set it on fire and used a macro-free brute force approach.

Don't judge me.

Spoiler
Screenshot 2023-12-04 191024.png
The first part was really easy. I simply stripped out the component parts, split to rows so I had a winning number per row and filtered to where one of my numbers was the same as a winner. I then simply multi-rowed a double calculation per card and boom.
Part two was a bit frustrating as I probably messed up something very straightforward with my iterative macro. The initial design simply ran through for each card number and generated the rows for each one, I then stripped out the originals and unioned the output back to the initial stream but it kept giving me extra rows and I couldn't figure out why, so I threw my hands up in the air in exasperation and brute forced it with an inelegant multi-row, using a look back for the number of rows representing the possible number of wins (10):
(if [Row-10:Count]-10>=0 then 1 else 0 endif) * [Row-10:Wins] +
(if [Row-9:Count]-9>=0 then 1 else 0 endif) *[Row-9:Wins] +
(if [Row-8:Count]-8>=0 then 1 else 0 endif) *[Row-8:Wins] +
(if [Row-7:Count]-7>=0 then 1 else 0 endif) *[Row-7:Wins] +
(if [Row-6:Count]-6>=0 then 1 else 0 endif) *[Row-6:Wins] +
(if [Row-5:Count]-5>=0 then 1 else 0 endif) *[Row-5:Wins] +
(if [Row-4:Count]-4>=0 then 1 else 0 endif) *[Row-4:Wins] +
(if [Row-3:Count]-3>=0 then 1 else 0 endif) *[Row-3:Wins] +
(if [Row-2:Count]-2>=0 then 1 else 0 endif) *[Row-2:Wins] +
(if [Row-1:Count]-1>=0 then 1 else 0 endif) *[Row-1:Wins] + 1

...which made my brain hurt so I need to lie down.

Still irritated as to why my iterative didn't work...

 

M.



Bulien

Labels
Top Solution Authors