Skip to content

Latest commit

 

History

History
45 lines (34 loc) · 3.64 KB

README.md

File metadata and controls

45 lines (34 loc) · 3.64 KB

🎄 🎅 🎄 Advent of Code 🎄 🎅 🎄

Advent of Code is an annual event in December since 2015. Every year since then, with the first day of December, a programming puzzles contest is published every day for twenty-four days. A set of Christmas-oriented challenges provide any input you have to use to answer using the language of your choice.

Description

This repository will contains my solutions for all years. Some of them are refactored, some are not. Some look nice, some are horrible to look at.

Solutions in this repo prioritize readability and minimize the amount of time it takes to write them. So for example if I can solve a problem in 5min using bruteforce or some hack I will do it instead of spending 2h writing a proper solution. That is why some solutions are less than optimal and when run may require more time. The only reason why I would do this is the fact that I only need the program to run once. I'll most likely never run it again so execution speed does not matter. Despite that I like when my code is clean and readable so I try to keep it as such.

Difficulty is ranked from 0 to 10 where 0 is the easiest year and 10 is the hardest one.

Year Status Language Difficulty Refactored?
2015 50 ⭐ JavaScript 0 ✔️
2016 50 ⭐ Go 6 ✔️
2017 50 ⭐ Ruby 4
2018 46 ⭐ Dart 9
2019 00 ⭐
2020 06 ⭐ Swift ?
2021 50 ⭐ Kotlin 10 ✔️
2022 22 ⭐ Crystal ?

Code Organization

Each year has its own directory. In each year-directory there is a README, a year specific gitignore, files needed for project (build.gradle.kts for Kotlin, package.json for JS, go.mod for Go and etc.) and "src" directory containing all the solutions. In "src" each day has its own directory either named "XX" or "dXX" depending on language requirements. Additionaly in "src" there is a "utils" file containing code shared between days (like reading input, checking results and some more). In each day-directory there is a solution file containing the code for both parts, inputs for days where this applies and README with a link to the respective challange.