Yan Cui
I help clients go faster for less using serverless technologies.
This article is brought to you by
I never fully recovered my workspace setup when I upgraded my laptop two years ago, and I still miss things today. If only I had known about Gitpod back then…
The source code for this post (both Part 1 and Part 2) is available here and you can click here to see my solutions for the other Advent of Code challenges.
Description for today’s challenge is here.
This is a modified version of the Day 6 challenge, with a twist of course.
So, we’ll start by creating a 100×100 2D array to represent our grid of lights. As per the instruction, we’ll read the input and use # to set the original state of a light to ON, and . to set the original state of a light to OFF.
Next, let’s add a function to count the number of neighbours that are ON, whilst taking into account that lights on the edge of the grid won’t have all 8 neighbours:
Then we’ll simulate 100 steps, each step would use the state from the previous step in a fold:
Finally, count the number of lights that are ON in the state after 100 steps:
Part 2
All else stays the same, we just need to inject additional logic to check if the light is one of the corner lights in a few places.
First, let’s add a function to determine if a light is in the corner:
and now we need to use it when setting the initial state for our grid:
as well as when we step from one state to the next:
and that’s it. After you made these couple of changes, all the rest of the code from Part 1 would work like before.
Whenever you’re ready, here are 3 ways I can help you:
- Production-Ready Serverless: Join 20+ AWS Heroes & Community Builders and 1000+ other students in levelling up your serverless game. This is your one-stop shop for quickly levelling up your serverless skills.
- I help clients launch product ideas, improve their development processes and upskill their teams. If you’d like to work together, then let’s get in touch.
- Join my community on Discord, ask questions, and join the discussion on all things AWS and Serverless.