Fork me on GitHub
R.A. Porter04:12:39

I needed Day 10. I still haven't been able to solve part 2 of Day 9 (I'm going to punt for now) even though I know how to solve it. I just can't seem to write an implementation that doesn't either short-cut in a way that breaks or blows out my stack in skipping shortcuts. But Day 10? That was built for Lispers.

Jeff Evans18:12:29

agreed. day 10 was a joy


🧵Day 11 answers thread: post your answers here


fastest time from part 1 to part 2 yet - it's always nice when that happens

👏 3

Need to think if I can apply frequencies here 😆

😂 4
Callum Oakley12:12:52

not my most concise solution… avoids scanning the whole map any more than once per step by checking if an octopus is ready to flash at increment time and pushing it on a stack. lots of passing state around to make that work though. I was expecting part 2 to be “simulate for a really long time” 🤷 (I also didn’t look at the input and see that it was tiny facepalm) 13ms/42ms


Day 11 and One of those things where the code started out pretty messy, but I got into a 'virtuous spiral' of refactoring, ending up with a quite readable (I think) solution. Definitely not fast! But sub-second, which is good enough I think.

karol14:12:41 - my first pass at solution - nothing fancy on my side, just plain loop through the board but seems to do the trick and executes part-2 in 163ms on my machine

Andrew Byala19:12:43

Wrote mine last night, and then rewrote it this morning. I used a recursive cascade-flashes function instead of keeping track of which points I had already flashed; it was a little less efficient than my original loop-recur, but I think it looks cleaner. •

Antonio Bibiano19:12:05

My solution for today

Antonio Bibiano19:12:45

I was really bummed that update-in throws when given an invalid array position like [-1 0]

Antonio Bibiano19:12:16

and at some point i learned that get-in returns the whole coll if the key is nil

💡 1

Horrible solution by me today. For whatever reason I couldn't get my head around grids, so I represented it as a flat vector. I also think I compensated for my brain not working by building it into a way too complicated data structure. Each cell looked like this

{:n 0 :flashed false :flashes 0 :xy [0 0] :i 0}
I know, dumb. BUt at least it's done, and it runs instantly. Definitely one I need to rethink when my brain is working better and re-work


I couldn't get to this yesterday. I expected second half to be harder; I was glad I had built step 1 on top of iterate so I could just reuse it for step 2. I guess I could clean it up but I have to do day 12 first:

Andrew Byala19:12:14

Very cool, @U067R559Q! What did you use for visualization?


I'm skipping today's one, I think. Another grid puzzle ;)

😲 1
👍 1

Some devs suggested Fennel, which is Lua based, for some AOC challenges


how come? how does Fennel help?

Cora (she/her)12:12:39

I was just trying it out, it doesn't really help


Day 11 animation, it's flashing (epilepsy warning) so I hid it in a thread. Cubic interpolation is used to generate bigger image.


advent-of-animations, I’m inspired.

Noah Bogart17:12:58

thanks for the threaded animation! looks very cool but nice to not have flashing by default


Yeah, I know it may be problematic for some people.


I feel like I would be able to navigate even when the octopi aren't all synced up :p

Antonio Bibiano19:12:08

what's the plural of octopus? octopi?

Cora (she/her)20:12:31

it's complicated


Can someone confirm something about Day 11 for me. Question in thread


For the small example input

1	1	1	1	1
1	9	9	9	1
1	9	1	9	1
1	9	9	9	1
1	1	1	1	1
Does this eventually end up as
1	1	1	1	1
1	1	1	1	1
1	1	1	1	1
1	1	1	1	1
1	1	1	1	1


yes, octopuses eventually syncronize, all the values in the grid became the same

👍 1