AoC 2022 Day 19: Blueprintinator

Part 1

Given a series of given a series of blueprints, each of which gives instructions for how to build a single robot from a collection of materials that in turn will produce one of a given material per turn, determine the best order of builds to maximize your geode (the most valuable material) production for each blueprint given a time limit of 24 minutes.

AoC 2022 Day 18: Lavinator

Part 1

Given a list of 1x1x1 cubes, determine the total surface area of the cubes.

AoC 2022 Day 16: Pressurinator

Part 1

Given a graph of nodes, some of which have a pressure (per tick output value) and an agent that can move through the graph and activate specific nodes (so that they output their per tick value every future tick), what is the maximum total output possible in 30 steps?

AoC 2022 Day 15: Beaconator

Part 1

There are a collections of Sensors and Beacons. As input, you are given the Beacon closest to each Sensor (using Manhattan Distance). If a Beacon is not closest to any sensor, it will not appear in this list. Calculate how many points in the given row (y=2000000) cannot contain a Beacon.

AoC 2022 Day 14: Sandinator

Part 1

Given a series of walls as input, run a falling sand simulation until any new sand falls of the map. Count how many grains of sand we end up with.

AoC 2022 Day 12: Climbiantor

Part 1

Given a height map, find the shortest path between two points such that the path can descend any distance but can only climb by a maximum of 1.

AoC 2022 Day 8: Treetopinator

Part 1

Given a grid of numbers, count how many of these numbers have a direct path in any cardinal direction to the edge of the grid.

Stateful Solvers and Iterators

Rust, yet again! Let’s take what we did last time with Solving Sudoku (again) and improve the code structure a bit more.

Goals:

• Create a ‘Solver’ struct that can maintain state (such as how many states we’ve visited, how much time we’ve spent)
• Track the above stats
• Turn the ‘Solver’ into an iterator which will iterate through given solutions (a single call will give the first solution or you can run through the iterator to get all of them)

Solving Sudoku (again)

More Rust! This time, I want to go back to my post on A Generic Brute Force Backtracking Solver. For one, because I’m learning Rust. For two, because there is a crate specifically for im mutable data structures. And for three, because I expect it will be much faster. We shall see!