Source: Day 2: Gift Shop
Full solution for today (spoilers!).
Part 1
Given a list of ranges
a-b(ie11-22), sum all values that are made of two repeated chunks of digits (ie123123)
Full solution for today (spoilers!).
Given a list of ranges
a-b(ie11-22), sum all values that are made of two repeated chunks of digits (ie123123)
Full solution for today (spoilers!).
Implement a padlock with 100 values (0-99). Run each command (
L23to turn left by 23 places) and then output the number of times you landed on zero.
It’s back! (Advent of Code)!
It’s been ten years (of advent of code, I haven’t done them all (yet)) and oh what a ten years it’s been. This time around, there will be only 12 days instead of 25, but honestly, that means I’m not working on these right up until Christmas. So I’m okay with this.
Once again, Rust! But this time, I won’t be using cargo-aoc, instead I wrote my own proc macros. Mostly to see if I could. 😄 See this section for more information.
Full solutions will once again be posted to GitHub (including previous years and possibly some I haven’t written up yet): jpverkamp/advent-of-code
Woodworm is a cute little PICO-8 puzzle game about a cute little worm… that eats wood. You can play it for free right now right here!
The goal is to turn this:

Into this:

There are a few rules to keep in mind:
The block (and the worm) are affected by gravity
The block can be split by into multiple pieces by eating it completely apart

The worm can crawl up the side of blocks, so long as two (consecutive) segments of the worm are touching walls

And that’s really it.
So let’s solve it!
And so it begins.
It’s a cute little puzzle game about making a donut factory.
It’s a lot like Solving Cosmic Express in that it’s a ‘puzzle on rails’, you are basically routing around the grid from source to target. In the way, we have to go to certain tiles in a certain order (in this case, to apply toppings to our donuts).

Let’s do it!
Full solution for today (spoilers!).
You are given a series of locks and keys (see below). How many unique
(lock, key)are there that do not overlap (they do not have to fit perfectly).A lock starts from the top. The entire top row is
#and the entire bottom row is..##### .#### .#### .#### .#.#. .#... .....A key is the opposite:
..... ..... ..... #.... #.#.. #.#.# #####
Full solution for today (spoilers!).
Given a collection of gates of the form
arg0 (AND|OR|XOR) arg2 -> outand input values of formx**andy**, what is the value ofz**interpreted as a binary number?
Full solution for today (spoilers!).
You are given the edges of an undirected graph. Count how many complete subgraphs of size three exist that contain one or more starting with the letter
t.
Aside: Games with local (but not hotseat) multiplayer have gotten rather rarer over the years… how many people still know what a LAN party is/was?
Full solution for today (spoilers!).
Implement a PRNG with the following update function:
- Multiply by 64, xor with the previous value, modulo 16777216
- Divide by 32, xor with the previous value (from step 1), modulo 16777216
- Multiply by 2048, xor with the previous value (from step 2), module 16777216
For each of a series of seeds, sum the 2000th generated number.
Full solution for today (spoilers!).
You are trying to type a code on a keypad:
+---+---+---+ | 7 | 8 | 9 | +---+---+---+ | 4 | 5 | 6 | +---+---+---+ | 1 | 2 | 3 | +---+---+---+ | 0 | A | +---+---+But you cannot type directly. Instead, you can control a pointer on the keypad with arrow keys:
+---+---+ | ^ | A | +---+---+---+ | < | v | > | +---+---+---+Whenever you type a
^on the arrow keys, the pointer on the keypad will move up one, etc. When you typeA, then the pointer on the keypad will type whatever it is pointing at.But that’s not enough either. Add a second keypad. And then a third, that is the one you are actually controlling.
For each output sequence multiple the length of the minimum input sequence needed to generate it by the numeric value of the input sequence (ignoring any
A); sum these.Note: Moving off any keypad or into the blank spaces is an error.