Skip to content
⭐️ Complete Advent of Code 2019 solutions in Go.
Go
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
day01 Add day 1. Dec 1, 2019
day02 Add day 2. Dec 2, 2019
day03 Optimize day 3. Dec 3, 2019
day04 Add day 4. Dec 4, 2019
day05 Add day 5. Dec 5, 2019
day06
day07 Add day 7. Dec 7, 2019
day08 Update print flags. Dec 29, 2019
day09 Add day 9. Dec 9, 2019
day10 Update print flags. Dec 29, 2019
day11 Update print flags. Dec 29, 2019
day12 Add day 12. Dec 12, 2019
day13 Add day 13. Dec 13, 2019
day14
day15 Update print flags. Dec 29, 2019
day16 Add day 16. Dec 16, 2019
day17 Refactor day 17. Dec 17, 2019
day18 Optimize day 18 further. Dec 19, 2019
day19 Add day 19. Dec 19, 2019
day20 Add day 20. Dec 20, 2019
day21 Refactor program for day 21. Dec 21, 2019
day22 Add day 22. Dec 22, 2019
day23 Add day 23. Dec 23, 2019
day24
day25 Add day 25. Dec 25, 2019
.gitignore Initial commit. Nov 28, 2019
Advent of Code 2019.sublime-project Add readme. Dec 2, 2019
go.mod Initial commit. Nov 28, 2019
readme.md Add readme. Dec 2, 2019
template.go Add template code. Nov 28, 2019
template_algorithm.go Add day 12. Dec 12, 2019
template_priority.go Add template code. Nov 28, 2019
template_profile.go Add profiling template. Dec 9, 2019
template_vector.go Add day 11. Dec 11, 2019

readme.md

Advent of Code 2019

This repository contains my solutions to the Advent of Code puzzles of 2019.

SPOILER WARNING: Do NOT look at the solutions until you have solved the puzzles for yourself.

Previous Years

Methodology

I am a competitive person, so I try to solve each puzzle as fast as possible and hopefully land a spot on the leaderboard (but there are other ways to play as well).

As you might know, each puzzle has two parts. Once I have solved both, I make them work at the same time (I might first modify the solution of the first part for the second part), format the code, give the variables more reasonable names and occasionally write a few comments or do some light refactoring as I see fit. That is the code that you can see here. Note that it is not the unformatted mess that produced the solution that I submitted, but it is not the most well-thought-out code either. Occasionally I will come back to a problem and work on my solution a little more (for example to optimize its runtime).

To go fast, I have written myself an input downloader, aocdl. This is a command line utility that you can start before the puzzle is released and it will automatically download your personal input file once it is available. That way you do not lose any time dealing with the puzzle input.

I also have created some template code, which I copy into the solutions. I copy the template code instead of importing a library to keep each solution self-contained and independent. The special template code for priority queues and different vector types needs to be adapted to each puzzle anyway.

You can’t perform that action at this time.