• Stars
    star
    165
  • Rank 228,906 (Top 5 %)
  • Language
    Go
  • License
    MIT License
  • Created almost 5 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

All 9 years of adventofcode.com solutions in Go/Golang; 2015 2016 2017 2018 2019 2020 2021 2022 2023

400 stars!

reddit thread after completing the first six years

reddit thread post 2021

Quick Note

I started this in a pre-generics Go/Golang world. Maybe one day I'll come back and learn generics as they'd be quite useful here. But that's for future Alex.

Running Locally

Requirements

Go 1.16+ is required because embed is used for input files.

Use go run main.go -part <1 or 2> will be usable to run the actual inputs for that day.

Use go test -run RegExpToMatchFunctionNames . to run examples and unit tests via the main_test.go files.

Scripts (used for all years but 2019)

Makefile should be fairly self-documenting. Alternatively you can run the binaries yourself via go run or go build.

make help prints a help message.

Make skeleton files

for ((i=1; i<26; i++)); do
make skeleton DAY=$i YEAR=2021
done

Note that skeletons use embed and will not compile without an input.txt file located in the same folder. Input files can be made via make input.

make skeleton DAY=5 YEAR=2020
make input DAY=5 YEAR=2020 AOC_SESSION_COOKIE=your_cookie

Fetch inputs and write to input.txt files

Requires passing your cookie from AOC from either -cookie flag, or AOC_SESSION_COOKIE env variable.

make input DAY=1 YEAR=2020