**Part 1:** Given the following definition of Snailfish numbers, add a series of Snailfish numbers and return the magnitude of the result.

read more...

**Part 1:** Simulate a projectile with an integer initial velocity (x, y), air resistance that tries to reduce x-velocity to 0, and gravity that increases y-velocity by 1 each time. Given a target range, find the highest point reached by a projectile that ends a tick (not one that crosses over) within the target area.

read more...

**Part 1:** Given a recursive binary packet definition (see below), parse the given packet. Return the sum of each packet’s `version`

.

read more...

**Part 1:** Given a grid of weights, find the minimum path from top left to top right. Return the total weight along that path.

read more...

**Part 1:** Given a set of points and a sequence of ‘fold’ lines (where you either fold the bottom over the top or right over left), determine how many points exist after the first fold.

read more...

**Part 1:** Given a list of edges in a bi-directional graph, count the number of paths from `start`

to `end`

such that nodes named with lowercase letters are visited once, and nodes with uppercase letters can be visited any number of times.

read more...

**Part 1:** Simulate a grid of numbers such that on each tick: advance all numbers by 1, any number that increases over 9 will ‘flash’ and add 1 to all neighbors (recursively, but each cell can only flash once) and then reset to 0. Count the number of flashes in the first 100 ticks.

read more...

**Part 1:** Given a sequence of () [] {}, and <> with nesting allowed. Find the first syntax error (where the wrong closing symbol is used). Scoring 3, 57, 1197, and 25137 respectively for each error, calculate the total error score.

read more...

**Part 1:** Given a heightmap, find all local minimums. Return the sum of (minimum height + 1) for each local minimum.

read more...