AdventOfCode-Python

Code for www.adventofcode.com in Python.

2022

Day 1 - Calorie Counting - Sum groups of numbers

Day 2 - Rock Paper Scissors

2021

Day 1 p1 p2 - Sonar Sweep -- Increasing numbers

Day 2 p1 p2 - Dive! -- Move submarine

Day 3 p1 p2 - Binary Diagnostics! -- Most common digit

Day 4 p1 p2 - Giant Squid! -- Bingo Cards

Day 5 p1 p2 - Hydrothermal Venture!

Day 6 - Lanternfish -- Dynamic Programming

Day 7 - The Treachery of Whales

Day 8 - Seven Segment Search -- Find out what segments match

Day 9 - Smoke Basin -- Region coloring

Day 10 - Syntax Scoring -- Compiler matching

Day 11 and Day 11 with Numpy - Dumbo Octopus -- Grid flashing

Day 12 and super fast DFS with memoization - Passage Pathing -- Find all paths

Day 13 - Transparent Origami -- Fold Grid

Day 14 and an alternative DP/memoization solution - Extended Polymerization -- Expanding strings

Day 15 - Chiton -- Shortest path (Dynamic Programming and Djikstra)

Day 16 Part 1 and Day 16 Part 1 - Packet Decoder -- Parse packets

Day 17 - Trick shot -- Predict trajectory

Day 18 - Snailfish -- Binary Tree

Day 19 - Beacon Scanner -- Overlapping scanners

Day 20 - Trench Map -- Image enhancement

Day 21 - Dirac Dice -- Dynamic programming

Day 22 - Reactor Reboot -- Overlapping cubes

Day 23 - Amphipod -- A* search in amphipod maze

Day 24 - Arithmetic Logic Unit -- Translate and optimize ALU code

Day 25 - Sea Cucumber -- East and Down moving sea cucumbers

2020

Day 1 - Report Repair -- Find expenses adding up to 2020

Day 2 - Password Philosophy -- Password validation

Day 3 - Toboggan Trajectory -- Count trees

Day 4 - Passport Processing -- Validate Passports

Day 5 - Binary Boarding -- Binary boarding passes

Day 6 - Custom Customs -- Find commonalities in groups of answers

Day 7 - Handy Haversacks -- Calculating recursive bags needed

Day 8 - Handheld Halting -- Implement a basic assembly compiler

Day 9 - Encoding Error -- Find sums in lists

Day 10 - Adapter Array -- Find combinations of adapters

Day 11 - Seating System -- Alternate grid based on adjacent and visible

Day 12 - Rain Risk -- moves and directions

Day 13 - Shuttle Search -- chinese remainders and modulo operations

Day 14 - Docking Data -- Bit masks

Day 15 - Rambunctious Recitation -- Calculate when a number was last seen

Day 16 - Ticket Translation -- Validate unreadable flight tickets

Day 17 - Conway Cubes -- 3D and 4D Conway Cubes

Day 18 - Operation Order -- Build a calculator with reverse operator order

Day 19 - Monster Messages -- Rules Engine

Day 20 - Jurassic Jigsaw -- rotate pieces, find sea monsters - This one was a nightmare

Day 21 - Allergen Assessment -- finding allergens, list intersections

Day 22 - Crab Combat -- simple card game

Day 23 - Crab Cups -- circular game of cups - slow with list, super fast with dicts

Day 24 - Lobby Layout -- hexagonal tiles and paths - reducing paths

Day 25 - Combo Breaker -- RFID decryption

2019

Day 1 - The Tyranny of the Rocket Equation -- Calculate Fuel

Day 2 - 1202 Programming Alarm -- IntCode computer - Part I

Day 3 - Crossing Wires -- (R32,L43...)

Day 4 - Secure Container -- Passwords

Day 5 - Sunny with a Chance of Asteroids -- IntCode - Part II

Day 6 - Universal Orbit Map -- Calculate number of orbits A)B

Day 7 - Amplification Circuit -- IntCode - Part III

Day 8 - Space Image Format -- Layered images

Day 9 - Sensor Boost -- IntCode IV

Day 10 - Monitoring Station -- Vaporize asteroids in grid

Day 11 - Space Police -- IntCode V

Day 12 - The N-Body Problem -- calculate orbits and gravity

Day 13-1 - Care Package -- IntCode VI -- draw arcade games

Day 14 - Space Stoichiometry -- Create FUEL from ORE

Day 15 - Oxygen System -- IntCode VII -- Maze

Day 16 - Flawed Frequency Transmission -- Binomial code - crazy hard

Day 17 - Set and Forget -- IntCode VIII - vacuum cleaner

Day 18

Day 19

2018

Day 1 - Chronal Calibration -- Frequency changes

Day 2 - Inventory Management System -- Candidate box IDs, and common letters

Day 3 - No Matter How You Slice It -- Claim santa fabric

Day 4 - Repose Record -- Sleeping guard logs

Day 5 - Alchemical Reduction -- Reduce strings

Day 6 - Chronical Coordinates -- Find largest area

Day 7 - The Sum of Its Parts -- Calculate chain of events

Day 8 - Memory Maneuver -- Read file contents with meta data

Day 9 - Marble Mania -- Play a game of % 23 marbles

Day 10 - The stars align -- Stars moving to show a message

Day 11 - Chronal Charge -- Sum of 3x3 area

Day 12 - Subterranean Sustainability -- ##..# => .

Day 13 - Mine cart madness -- Train tracks.

Day 14 - Chocolate Charts -- Calculate recipe sums.

Day 16 - Chronal Classification -- Register program.

Day 17 - Resevoir Research -- Water flow (with pygame animations)

Day 18 - Settlers of The North Pole -- Morph the earth based on adjacent squares - part II repeating pattern

Day 19 - Go With The Flow -- Reverse engineering op code - find divisors

Day 20 - A Regular Map -- Regular expression paths - find shortest path

Day 21 - Chronal Conversion -- Reverse engineer op code - optimize

Day 22 - Mode Maze -- Maze with different areas and tools - dijkstra's algorithm

Day 23 - Experimental Emergency Teleportation -- Range in 3D space - PART II is incomplete

2017

Day 1 - Captcha -- Sum if same as next

Day 2 - Corruption Checksum -- Sum of differences and divisors

Day 3 - Spiral Memory -- Count steps from center

Day 4 - High-Entropy Passphrases -- Valid passphrases

Day 5 - A Maze of Twisty Trampolines, All Alike -- Int maze

Day 6 - Memory Reallocation -- Distributing weight

Day 7 - Recursive Circus -- Finding chains

Day 8 - I Heard You Like Registers -- Execute jumps

Day 9 - Stream Processing -- <garbage> {group}

Day 10 - Knot Hash -- Elves hashing function

Day 11 - Hex Ed -- Reduce hexagonal path

Day 12 - Digital Plumber -- Find islands of numbers

Day 13 - Packet Scanners -- Scan layers of packages

Day 14 - Disk Defragmentation -- Knot Hash, and clustering binary regions

Day 15 - Dueling Generators -- Checking pairs of binary numbers

Day 16 - Permutation Promenade -- Compiler for program dance

Day 17 - Spinlock -- Crazy spinlock algorithm

Day 18 - Duet -- Compiler for sender/receiver

Day 19 - A Series of Tubes -- Follow a path

Day 20 - Particle Swarm -- Accelerate Particles

Day 21 - Fractal Art -- Replace rows by rules

Day 22 - Sporifica Virus -- Virus infection

Day 23 - Coprocessor Conflagation -- Simple compiler

Day 24 - Electromagnetic Moat -- Domino chain

Day 25 - The Halting Problem -- Turing machine

2016

Day 1 - No Time for a Taxicab -- Rotate Right and Left

Day 2 - Bathroom Security -- Keypads

Day 3 - Squares With Three Sides -- Good Triangles

Day 4 - Security Through Obscurity -- encrypted rooms

Day 5 - How About a Nice Game of Chess? -- MD5

Day 6 - Signals and Noise -- Most common in each column

Day 7 - Internet Protocol Version 7 -- Validate IP address

Day 8 - Two-Factor Authentication -- Light screen

Day 9 - Explosives in Cyberspace -- Decompressing strings

Day 10 - Balance Bots -- Bots moving numbers

Day 11 - Radioisotope Thermoelectric Generators - Move elevator up and down (other peoples code)

Day 12 - Leonardo's Monorail -- mini compiler

Day 13 - A Maze of Twisty Little Cubicles -- maze

Day 14 - One-Time Pad -- MD5 hash

Day 15 - Timing is everything -- Rotating discs

Day 16 - Dragon Checksum -- Dragon curve random data

Day 17 - Two Steps Forward -- Path to Vault

Day 18 - Like a Rogue -- Traps and Safes

Day 19 - An Elephant Named Joseph -- Stealing gifts in a circle

Day 20 - Firewall Rules -- Count available IPs

Day 21 - Scrambled Letters and Hash -- Scramble letters according to instructions

Day 22 - Grid Computing -- Sliding puzzle

Day 23 - Safe Cracking -- Simple compiler with toggle

Day 24 - Air Duct Spelunking -- Find best path visiting all numbers

Day 25 - Clock Signal -- More bunny compiler

2015

Day 1 - Not Quite Lisp -- Calculate ())))(

Day 2 - I Was Told There Would Be No Math -- Ribbons and Paper

Day 3 - Perfectly Spherical Houses in a Vacuum -- ^v^v^v^v^v

Day 4 - The Ideal Stocking Stuffer -- MD5

Day 5 - Doesn't He Have Intern-Elves For This? -- Passwords

Day 6 - Probably a Fire Hazard -- Grid Board

Day 7 - Some Assembly Required -- Bitwise Logic gates

Day 8 - Matchsticks -- Calculate escape characters

Day 9 - All in a Single Night -- Shortest route between cities

Day 10 - Elves Look, Elves Say -- Look and say numbers

Day 11 - Corporate Policy -- Password Regexps

Day 12 - JSAbacusFramework.io -- Finding numbers in string

Day 13 - Knights of the Dinner Table -- Find optimal seating

Day 14 - Reindeer Olympics -- How long did the winning deer travel

Day 15 - Science for Hungry People -- Best cookie ingredient combo

Day 16 - Aunt Sue -- Find out which Aunt Sues

Day 17 - No Such Thing as Too Much -- Combos of egg nog containers

Day 18 - Like a GIF For Your Yard -- Conways game of life

Day 19 - Medicine for Rudolph -- Replace substrings

Day 20 - Infinite Elves and Infinite Houses -- Prime factors

Day 21 - RPG Simulator 20XX -- Armor and Damage

Day 22 - Wizard Simulator 20XX -- Mana and damage

Day 23 - Opening the Turning Lock -- Tiny compiler

Day 24 - It hangs in the balance -- Balancing packages

Day 25 - Let it snow -- Calculate code