Solutions to problems from https://adventofcode.com (2020, 2021, 2022)
conda env create
conda activate aoc
python3 -m aoc --help
- maintainability
- readability: style nearly production-worthy (others can understand easily; avoid amusing code golf)
- extensibility: not logically-over-optimised; if requirements changed (there was a "part 3") then the code doesn't need to be rewritten
- scalability: time-complexity-optimised (sane run times even if the input was significantly larger; avoid brute-force just because the input is currently tiny)
Most code I've seen falls into one of these categories:
- novice: e.g. logical inefficiencies, syntactical inefficiencies, unhelpful verbosity
- expert: e.g. code golf, sacrificing extensibility for runtime performance, lacking code comments, unnecessary complexity, overuse of either OOP or functional programming
I strongly believe "good code" must make none of the above sacrifices, and this repository aims to demonstrate this idea.
Suggestions and pull requests are welcome.