{"id":18756783,"url":"https://github.com/code-shoily/advent_of_code","last_synced_at":"2025-08-07T17:37:33.311Z","repository":{"id":30402757,"uuid":"124799707","full_name":"code-shoily/advent_of_code","owner":"code-shoily","description":"Advent of Codes with Elixir [2015 ~ 2023]","archived":false,"fork":false,"pushed_at":"2025-01-03T23:30:41.000Z","size":2180,"stargazers_count":26,"open_issues_count":0,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-26T19:44:46.569Z","etag":null,"topics":["advent-of-code","advent-of-code-2015","advent-of-code-2016","advent-of-code-2017","advent-of-code-2018","advent-of-code-2019","advent-of-code-2020","advent-of-code-2021","advent-of-code-2022","advent-of-code-2023","algorithms","elixir-lang"],"latest_commit_sha":null,"homepage":"","language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/code-shoily.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-03-11T21:08:57.000Z","updated_at":"2025-01-03T23:30:44.000Z","dependencies_parsed_at":"2023-12-31T04:24:02.631Z","dependency_job_id":"6880f81d-ac21-4350-9486-b2b4171cdb12","html_url":"https://github.com/code-shoily/advent_of_code","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code-shoily%2Fadvent_of_code","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code-shoily%2Fadvent_of_code/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code-shoily%2Fadvent_of_code/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code-shoily%2Fadvent_of_code/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/code-shoily","download_url":"https://codeload.github.com/code-shoily/advent_of_code/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248654083,"owners_count":21140235,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["advent-of-code","advent-of-code-2015","advent-of-code-2016","advent-of-code-2017","advent-of-code-2018","advent-of-code-2019","advent-of-code-2020","advent-of-code-2021","advent-of-code-2022","advent-of-code-2023","algorithms","elixir-lang"],"created_at":"2024-11-07T17:38:03.676Z","updated_at":"2025-04-13T02:03:48.169Z","avatar_url":"https://github.com/code-shoily.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!--\n* AUTOGENERATED -- DO NOT EDIT\n* Edit static content in `priv/partials/readme_content.md`\n* Run `mix gen_readme` to recreate\n--\u003e\n# AdventOfCode\n\nAdvent of Code puzzle solutions in Elixir. It's work in progress and starting year 2015 to 2022, random days are attempted.\n\n## Code Organization\n\nAll solution modules reside in `lib/\u003cyear\u003e/day_\u003cday\u003e.ex` and associated tests have the same structure in `test/` folder. Input files are in `lib/data/inputs/\u003cyear\u003e_\u003cday\u003e.txt`.\n\n## Stubs\n\nTo make the experience boilerplate-free and give all solutions uniform (more or less) structure, type `mix gen --year \u003cyear\u003e --day \u003cday\u003e` or `mix gen \u003cyear\u003e \u003cday\u003e` to have the structure and stub generated. Optionally, if you have `COOKIE` environment variable storing your cookie then it will download the input file and add the title on the moduledocs for you. Type `mix help gen` for more.\n\nTo solve the problem for a particular year/day, type in `mix solve --year \u003cyear\u003e --day \u003cday\u003e` or `mix solve \u003cyear\u003e \u003cday\u003e` and you will see the result of the mentioned `year/day` if it is valid and has been solved. Type `mix help solve` for more.\n\n## Introducing a new year\n\nDuring December 1 of a new year (if Advent of Code is happening that year), the following steps should be taken (this should be more streamlined in future):\n\n* Create a new folder `XXXX` (in year format) under `/lib` or `/test`\n* Update the `@latest_year` attribute on `advent_of_code.ex`\n* Double check your session cookie (in case you're using it)\n\nAll commands should work from then on.\n\n## Testing\n\nrun `mix test` to ensure all solutions are working okay. To run test for a particular year and day, type `mix test --only y\u003clast-two-digits-of-year\u003e\u003czero-padded-day\u003e`. For example: `mix test --only y1501` tests for `2015` as year and `1` as day.\n\n## Updating README and Stats\n\nIf you want to update the `README.md` (i.e. this file) please do not update `README.me` directly, instead update the static content (not stats related) on `priv/partials/readme_content.md` and then run `mix readme` to regenerate this file.\n\nThe stats, both in `\u003cyear\u003e/README.md` and the bottom part of `README.md` are autogenerated by pulling from the live code state. To keep the stats updated, run `mix update_stats` command. This does the following two things:\n\n* Runs `mix gen_stats` to update the relevant `README.md` so that the latest stats are always displayed.\n* Runs `mix gen_readme` to update the main `README.md` to reflect all the stars.\n* Runs `mix gen_tags` to update `wiki/tags.md` with latest tag summary\n* Runs `mix gen_difficulties` to update `wiki/difficulties.md` with latest difficulty summary\n\nNote that you can call those commands independently and also set up pre-commit hooks to run it for you.\n\n## Pages\n\n* [tags.md](/wiki/tags.md) contains information about tags, a loose attempt to have an idea of nature (i.e. algorithms, output type, input size etc) of puzzles\n* [difficulties.md](/wiki/difficulties.md) contains information about relative difficulties, marked with :snowflake: (higher number of icons represent higher difficulty)\n* Each year has its own `README.md` to have summarized information of that year. Those pages are:\n    - [2015/README.md](/lib/2015/README.md)\n    - [2016/README.md](/lib/2016/README.md)\n    - [2017/README.md](/lib/2017/README.md)\n    - [2018/README.md](/lib/2018/README.md)\n    - [2019/README.md](/lib/2019/README.md)\n    - [2020/README.md](/lib/2020/README.md)\n    - [2021/README.md](/lib/2021/README.md)\n    - [2022/README.md](/lib/2022/README.md)\n    - [2023/README.md](/lib/2023/README.md)\n\nNote: All files mentioned above are autogenerated and are created by running `mix update_stats` task.\n\n# :star: 299/500 :dart: 201 :trophy: 149.5/250 :dart: 100.5\n\n| Day | [2015](/lib/2015) | [2016](/lib/2016) | [2017](/lib/2017) | [2018](/lib/2018) | [2019](/lib/2019) | [2020](/lib/2020) | [2021](/lib/2021) | [2022](/lib/2022) | [2023](/lib/2023) | [2024](/lib/2024) |\n|:---:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|\n| :star2: | 48 | 22 | 34 | 15 | 15 | 45 | 24 | 45 | 44 | 7 |\n| 1 | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: |\n| 2 | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: |   |\n| 3 | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: |\n| 4 | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: |   |\n| 5 | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: | :2nd_place_medal: | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: |\n| 6 | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: |   |\n| 7 | :1st_place_medal: | :1st_place_medal: | :2nd_place_medal: |   |   | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: |   |\n| 8 | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: | :2nd_place_medal: | :1st_place_medal: | :1st_place_medal: |   | :1st_place_medal: | :1st_place_medal: |   |\n| 9 | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: |   | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: |   |\n| 10 | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: |   | :1st_place_medal: | :1st_place_medal: |   | :1st_place_medal: | :1st_place_medal: |   |\n| 11 | :1st_place_medal: |   | :1st_place_medal: |   |   | :1st_place_medal: |   | :1st_place_medal: | :1st_place_medal: |   |\n| 12 | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: |   |   | :1st_place_medal: |   | :1st_place_medal: | :1st_place_medal: | :2nd_place_medal: |\n| 13 | :1st_place_medal: |   | :1st_place_medal: |   |   | :1st_place_medal: |   | :1st_place_medal: | :1st_place_medal: |   |\n| 14 | :1st_place_medal: |   | :2nd_place_medal: |   |   | :1st_place_medal: |   | :1st_place_medal: | :1st_place_medal: |   |\n| 15 | :1st_place_medal: |   | :1st_place_medal: |   |   | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: |   |\n| 16 | :1st_place_medal: |   | :1st_place_medal: |   |   | :2nd_place_medal: | :1st_place_medal: |   | :1st_place_medal: |   |\n| 17 | :1st_place_medal: |   | :1st_place_medal: |   |   |   |   |   |   |   |\n| 18 | :1st_place_medal: |   | :2nd_place_medal: |   |   | :1st_place_medal: |   | :1st_place_medal: | :1st_place_medal: |   |\n| 19 | :1st_place_medal: |   |   |   |   | :1st_place_medal: |   | :1st_place_medal: | :1st_place_medal: |   |\n| 20 | :1st_place_medal: |   |   |   |   | :2nd_place_medal: |   | :1st_place_medal: |   |   |\n| 21 | :1st_place_medal: |   |   |   |   | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: |   |   |\n| 22 |   |   |   |   |   | :1st_place_medal: |   | :2nd_place_medal: | :1st_place_medal: |   |\n| 23 | :1st_place_medal: |   | :2nd_place_medal: |   |   | :1st_place_medal: |   | :1st_place_medal: | :1st_place_medal: |   |\n| 24 | :1st_place_medal: |   |   |   |   | :2nd_place_medal: |   | :1st_place_medal: | :1st_place_medal: |   |\n| 25 | :1st_place_medal: |   |   |   |   | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: | :1st_place_medal: |   |\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcode-shoily%2Fadvent_of_code","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcode-shoily%2Fadvent_of_code","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcode-shoily%2Fadvent_of_code/lists"}