{"id":17943893,"url":"https://github.com/code-shoily/adventoffsharp","last_synced_at":"2026-07-16T04:33:26.180Z","repository":{"id":259815601,"uuid":"879467834","full_name":"code-shoily/AdventOfFSharp","owner":"code-shoily","description":"Advent of Code puzzles solved in F#","archived":false,"fork":false,"pushed_at":"2025-03-15T18:21:32.000Z","size":671,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-03T14:18:08.598Z","etag":null,"topics":["advent-of-code","algorithms","fsharp","programming-challenges"],"latest_commit_sha":null,"homepage":"","language":"F#","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":"2024-10-28T00:49:04.000Z","updated_at":"2025-03-15T18:21:35.000Z","dependencies_parsed_at":"2024-11-24T00:22:15.218Z","dependency_job_id":"7e73996a-39c0-4197-b833-8acc75b974d4","html_url":"https://github.com/code-shoily/AdventOfFSharp","commit_stats":null,"previous_names":["code-shoily/adventoffsharp"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code-shoily%2FAdventOfFSharp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code-shoily%2FAdventOfFSharp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code-shoily%2FAdventOfFSharp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code-shoily%2FAdventOfFSharp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/code-shoily","download_url":"https://codeload.github.com/code-shoily/AdventOfFSharp/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247014520,"owners_count":20869376,"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","algorithms","fsharp","programming-challenges"],"created_at":"2024-10-29T05:03:33.154Z","updated_at":"2026-07-16T04:33:26.174Z","avatar_url":"https://github.com/code-shoily.png","language":"F#","funding_links":[],"categories":[],"sub_categories":[],"readme":"﻿# Advent of Code solutions with F#\n\n## What is Advent of Code?\n\n[This](https://adventofcode.com). Every year since 2015, starting December 1 to 25, 25 small programming problems are\npresented on http://adventofcode.com. The challenges are fun to solve in programming language of your choice.\n\nThis is my attempt to solve Advent of Code problems with [F#](https://fsharp.org/).\n\nMore about Advent of Code [here](https://adventofcode.com/about).\n\n\u003c!-- STATS_START --\u003e\n\u003e **55 problems solved** across **10 years** — [Tags](wiki/tags/index.md) · [Difficulty](wiki/difficulty.md)\n\n**Years:** [2015](Year2015/README.md) | [2016](Year2016/README.md) | [2017](Year2017/README.md) | [2018](Year2018/README.md) | [2019](Year2019/README.md) | [2020](Year2020/README.md) | [2021](Year2021/README.md) | [2022](Year2022/README.md) | [2023](Year2023/README.md) | [2024](Year2024/README.md)\n\n| Day | [2015](Year2015/README.md) | [2016](Year2016/README.md) | [2017](Year2017/README.md) | [2018](Year2018/README.md) | [2019](Year2019/README.md) | [2020](Year2020/README.md) | [2021](Year2021/README.md) | [2022](Year2022/README.md) | [2023](Year2023/README.md) | [2024](Year2024/README.md) |\n|:---:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|\n| 1 | [⭐](https://adventofcode.com/2015/day/1) | [⭐](https://adventofcode.com/2016/day/1) | [⭐](https://adventofcode.com/2017/day/1) | [⭐](https://adventofcode.com/2018/day/1) | [⭐](https://adventofcode.com/2019/day/1) | [⭐](https://adventofcode.com/2020/day/1) | [⭐](https://adventofcode.com/2021/day/1) | [⭐](https://adventofcode.com/2022/day/1) | [⭐](https://adventofcode.com/2023/day/1) | [⭐](https://adventofcode.com/2024/day/1) |\n| 2 | [⭐](https://adventofcode.com/2015/day/2) | [⭐](https://adventofcode.com/2016/day/2) | [⭐](https://adventofcode.com/2017/day/2) | [⭐](https://adventofcode.com/2018/day/2) | [⭐](https://adventofcode.com/2019/day/2) | [⭐](https://adventofcode.com/2020/day/2) | [⭐](https://adventofcode.com/2021/day/2) | [⭐](https://adventofcode.com/2022/day/2) | [⭐](https://adventofcode.com/2023/day/2) | [⭐](https://adventofcode.com/2024/day/2) |\n| 3 | [⭐](https://adventofcode.com/2015/day/3) | [⭐](https://adventofcode.com/2016/day/3) | [⭐](https://adventofcode.com/2017/day/3) | [⭐](https://adventofcode.com/2018/day/3) | [⭐](https://adventofcode.com/2019/day/3) | [⭐](https://adventofcode.com/2020/day/3) | [⭐](https://adventofcode.com/2021/day/3) | [⭐](https://adventofcode.com/2022/day/3) | [⭐](https://adventofcode.com/2023/day/3) | [⭐](https://adventofcode.com/2024/day/3) |\n| 4 | [⭐](https://adventofcode.com/2015/day/4) | [⭐](https://adventofcode.com/2016/day/4) | [⭐](https://adventofcode.com/2017/day/4) | [⭐](https://adventofcode.com/2018/day/4) |   | [⭐](https://adventofcode.com/2020/day/4) |   |   |   | [⭐](https://adventofcode.com/2024/day/4) |\n| 5 | [⭐](https://adventofcode.com/2015/day/5) | [⭐](https://adventofcode.com/2016/day/5) | [⭐](https://adventofcode.com/2017/day/5) |   |   | [⭐](https://adventofcode.com/2020/day/5) |   |   |   | [⭐](https://adventofcode.com/2024/day/5) |\n| 6 | [⭐](https://adventofcode.com/2015/day/6) | [⭐](https://adventofcode.com/2016/day/6) | [⭐](https://adventofcode.com/2017/day/6) |   |   | [⭐](https://adventofcode.com/2020/day/6) |   |   |   | [⭐](https://adventofcode.com/2024/day/6) |\n| 7 |   | [⭐](https://adventofcode.com/2016/day/7) | [⭐](https://adventofcode.com/2017/day/7) | [⭐](https://adventofcode.com/2018/day/7) |   | [⭐](https://adventofcode.com/2020/day/7) |   |   |   | [⭐](https://adventofcode.com/2024/day/7) |\n| 8 |   |   |   |   |   |   |   |   |   | [⭐](https://adventofcode.com/2024/day/8) |\n| 9 |   |   |   |   |   |   |   |   |   |   |\n| 10 |   |   |   |   |   |   |   |   |   | [⭐](https://adventofcode.com/2024/day/10) |\n| 11 |   |   |   |   |   |   |   |   |   | [⭐](https://adventofcode.com/2024/day/11) |\n| 12 |   |   |   |   |   |   |   |   |   |   |\n| 13 |   |   |   |   |   |   |   |   |   |   |\n| 14 |   |   |   |   |   |   |   |   |   |   |\n| 15 |   |   |   |   |   |   |   |   |   |   |\n| 16 |   |   |   |   |   |   |   |   |   |   |\n| 17 |   |   |   |   |   |   |   |   |   |   |\n| 18 |   |   |   |   |   |   |   |   |   |   |\n| 19 |   |   |   |   |   |   |   |   |   |   |\n| 20 |   |   |   |   |   |   |   |   |   |   |\n| 21 |   |   |   |   |   |   |   |   |   |   |\n| 22 |   |   |   |   |   |   |   |   |   |   |\n| 23 |   |   |   |   |   |   |   |   |   |   |\n| 24 |   |   |   |   |   |   |   |   |   |   |\n| 25 |   |   |   |   |   |   |   |   |   | [⭐](https://adventofcode.com/2024/day/25) |\n\n### 🏷️ Tags\n\n[array](wiki/tags/array.md)\u0026nbsp;`5`  [geometry](wiki/tags/geometry.md)\u0026nbsp;`5`  [navigation](wiki/tags/navigation.md)\u0026nbsp;`5`  [set](wiki/tags/set.md)\u0026nbsp;`4`  [string](wiki/tags/string.md)\u0026nbsp;`4`  [frequency](wiki/tags/frequency.md)\u0026nbsp;`3`  [graph](wiki/tags/graph.md)\u0026nbsp;`3`  [slow](wiki/tags/slow.md)\u0026nbsp;`3`  [ascii](wiki/tags/ascii.md)\u0026nbsp;`2`  [md5](wiki/tags/md5.md)\u0026nbsp;`2`  [mutable](wiki/tags/mutable.md)\u0026nbsp;`2`  [recursion](wiki/tags/recursion.md)\u0026nbsp;`2`  [reduction](wiki/tags/reduction.md)\u0026nbsp;`2`  [regex](wiki/tags/regex.md)\u0026nbsp;`2`  [should-refactor](wiki/tags/should-refactor.md)\u0026nbsp;`2`  [slightly-slow](wiki/tags/slightly-slow.md)\u0026nbsp;`2`  [sort](wiki/tags/sort.md)\u0026nbsp;`2`  [topological-sort](wiki/tags/topological-sort.md)\u0026nbsp;`2`  [anagram](wiki/tags/anagram.md)\u0026nbsp;`1`  [arithmetic](wiki/tags/arithmetic.md)\u0026nbsp;`1`  [array2d](wiki/tags/array2d.md)\u0026nbsp;`1`  [bfs](wiki/tags/bfs.md)\u0026nbsp;`1`  [bignum](wiki/tags/bignum.md)\u0026nbsp;`1`  [binary](wiki/tags/binary.md)\u0026nbsp;`1`  [brute-force](wiki/tags/brute-force.md)\u0026nbsp;`1`  [counter](wiki/tags/counter.md)\u0026nbsp;`1`  [data-modeling](wiki/tags/data-modeling.md)\u0026nbsp;`1`  [data-transform](wiki/tags/data-transform.md)\u0026nbsp;`1`  [date-time](wiki/tags/date-time.md)\u0026nbsp;`1`  [dfs](wiki/tags/dfs.md)\u0026nbsp;`1`  [difficult-part-2](wiki/tags/difficult-part-2.md)\u0026nbsp;`1`  [direction](wiki/tags/direction.md)\u0026nbsp;`1`  [disjoint-set](wiki/tags/disjoint-set.md)\u0026nbsp;`1`  [equation](wiki/tags/equation.md)\u0026nbsp;`1`  [fold](wiki/tags/fold.md)\u0026nbsp;`1`  [formula](wiki/tags/formula.md)\u0026nbsp;`1`  [fsm](wiki/tags/fsm.md)\u0026nbsp;`1`  [graph-traversal](wiki/tags/graph-traversal.md)\u0026nbsp;`1`  [grid](wiki/tags/grid.md)\u0026nbsp;`1`  [map-grid](wiki/tags/map-grid.md)\u0026nbsp;`1`  [matrix](wiki/tags/matrix.md)\u0026nbsp;`1`  [memoization](wiki/tags/memoization.md)\u0026nbsp;`1`  [modular-algebra](wiki/tags/modular-algebra.md)\u0026nbsp;`1`  [n-sum](wiki/tags/n-sum.md)\u0026nbsp;`1`  [off-by-one](wiki/tags/off-by-one.md)\u0026nbsp;`1`  [optimization](wiki/tags/optimization.md)\u0026nbsp;`1`  [scan](wiki/tags/scan.md)\u0026nbsp;`1`  [sequence](wiki/tags/sequence.md)\u0026nbsp;`1`  [simulation](wiki/tags/simulation.md)\u0026nbsp;`1`  [sliding-window](wiki/tags/sliding-window.md)\u0026nbsp;`1`  [slope-intercept](wiki/tags/slope-intercept.md)\u0026nbsp;`1`  [spiral](wiki/tags/spiral.md)\u0026nbsp;`1`  [tabular](wiki/tags/tabular.md)\u0026nbsp;`1`  [transpose](wiki/tags/transpose.md)\u0026nbsp;`1`  [typed](wiki/tags/typed.md)\u0026nbsp;`1`  [validation](wiki/tags/validation.md)\u0026nbsp;`1`  [window](wiki/tags/window.md)\u0026nbsp;`1`\n\u003c!-- STATS_END --\u003e\n\n## Running Solutions\n\n### Prerequisites\n\n- [.NET 10.0 SDK](https://dotnet.microsoft.com/download/dotnet/10.0)\n- [AOC_SESSION_KEY](#getting-your-session-key) environment variable (optional, for fetching inputs)\n\n### Running a specific day\n\n```bash\ndotnet run --project Runner -- \u003cyear\u003e \u003cday\u003e\n```\n\nExample:\n```bash\ndotnet run --project Runner -- 2024 1\n```\n\n### Running tests\n\n```bash\ndotnet test\n```\n\n## Project Structure\n\n```\nAdventOfFSharp/\n├── Year20XX/           # Solutions for each year\n│   ├── Day01.fs\n│   ├── Day02.fs\n│   └── ...\n├── Common/             # Shared utilities\n├── Inputs/             # Puzzle inputs (not in repo)\n├── Solutions.Tests/    # Unit tests\n└── scripts/            # Helper scripts\n    ├── gen_wiki.py     # Generate wiki documentation\n    └── scaffold.py     # Scaffold new day files\n```\n\n## Scripts\n\n### Generate Wiki\n\nGenerates wiki documentation from solution headers:\n\n```bash\npython scripts/gen_wiki.py\n```\n\nThis creates:\n- `wiki/difficulty.md` — solutions by difficulty\n- `wiki/tags/index.md` — tag directory\n- `wiki/tags/{tag}.md` — per-tag pages\n- `YearXXXX/README.md` — per-year tables\n\n### Scaffold New Day\n\nCreates boilerplate for a new day:\n\n```bash\npython scripts/scaffold.py \u003cyear\u003e \u003cday\u003e\n```\n\nExample:\n```bash\npython scripts/scaffold.py 2024 15\n```\n\nThis creates:\n- `Year2024/Day15.fs` — solution module\n- `Inputs/2024_15.txt` — input file (fetched if AOC_SESSION_KEY is set)\n\n## Getting your session key\n\n1. Log in to [Advent of Code](https://adventofcode.com)\n2. Open browser dev tools → Application/Storage → Cookies\n3. Copy the `session` cookie value\n4. Set it as environment variable:\n   ```bash\n   export AOC_SESSION_KEY=\"your_session_cookie\"\n   ```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcode-shoily%2Fadventoffsharp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcode-shoily%2Fadventoffsharp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcode-shoily%2Fadventoffsharp/lists"}