Skip to content

darrenaustin/advent-of-code

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

438 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎄 Darren's Advent of Code 🎄

My solutions to the Advent of Code puzzles written in various programming languages. I love solving programming puzzles, and this allows me to explore different languages and algorithms in a fun way.

Given that, these are just my solutions to the problems. There are undoubtedly cleaner, faster or more idiomatic ways to solve them in a given language. (if so, please drop me a line and let me know how to improve them).

Support the cause

The Advent of Code is an awesome event that we can all look forward to each year. If you can, please support Eric's efforts at:

https://adventofcode.com/support

Current languages

I have solutions in various forms for:

  • clojure - Really love Clojure, but it had been years since I used it for anything.
  • dart - Used Dart a lot when I was on the Flutter team, and wanted to sharpen my skills with it.

Solutions by year

2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025
50 ⭐️ 50 ⭐️ 50 ⭐️ 50 ⭐️ 50 ⭐️ 50 ⭐️ 42 ⭐️ 50 ⭐️ 50 ⭐️ 50 ⭐️ 24 ⭐️

Input files

The input files needed for these solutions come from the Advent of Code site and are customized for each user. They have requested that these input files are not made publicly available. Therefore I have encrypted them in the top level input directory using git-crypt following this guide. However, you can specify a different location if you want to run them against your own input by using the -DAOC_INPUT_DIR=<some path> command line option to any of the language runners.

Answer files

In addition to the raw input files mentioned above, I also store a DD_answer.json file for each day's problem that has the form of:

{
  "name" : "Not Quite Lisp",
  "answer1" : 42,
  "answer2" : 4242
}

This gives the name of the problem and the solutions for my input. These answer files allow me to write tests against them to make sure I don't break anything when solving new problems.