Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ceribe/advent-of-code

My Advent of Code solutions. WIP
https://github.com/ceribe/advent-of-code

advent-of-code advent-of-code-csharp advent-of-code-dart advent-of-code-go advent-of-code-javascript advent-of-code-js advent-of-code-kotlin advent-of-code-ruby advent-of-code-swift adventofcode csharp dart go golang javascript js kotlin ruby swift

Last synced: about 1 month ago
JSON representation

My Advent of Code solutions. WIP

Awesome Lists containing this project

README

        

# :christmas_tree: :santa: :christmas_tree: Advent of Code :christmas_tree: :santa: :christmas_tree:

[Advent of Code](https://adventofcode.com/) 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 :star: | JavaScript | 0 | :heavy_check_mark: |
| 2016 | 50 :star: | Go | 6 | :heavy_check_mark: |
| 2017 | 50 :star: | Ruby | 4 ||
| 2018 | 46 :star: | Dart | 9 ||
| 2019 | 00 :star: | | ||
| 2020 | 06 :star: | Swift | ? ||
| 2021 | 50 :star: | Kotlin | 10 | :heavy_check_mark: |
| 2022 | 22 :star: | 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.

[^aoc]:
[Advent of Code][aoc] – 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.

[aoc]: https://adventofcode.com