{"id":22591601,"url":"https://github.com/ryanmalonzo/advent-of-code-2024","last_synced_at":"2025-03-28T18:26:20.271Z","repository":{"id":266707397,"uuid":"898699819","full_name":"ryanmalonzo/advent-of-code-2024","owner":"ryanmalonzo","description":"My journey through Advent of Code 2024 using Python 3.12","archived":false,"fork":false,"pushed_at":"2024-12-20T15:41:25.000Z","size":27,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-02T18:52:19.670Z","etag":null,"topics":["advent-of-code","advent-of-code-2024","advent-of-code-2024-python","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ryanmalonzo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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-12-04T21:43:01.000Z","updated_at":"2024-12-20T15:41:29.000Z","dependencies_parsed_at":"2024-12-05T17:33:55.932Z","dependency_job_id":"6d8e7b7e-a0e0-4087-9f2d-95317c2e85a8","html_url":"https://github.com/ryanmalonzo/advent-of-code-2024","commit_stats":null,"previous_names":["ryanmalonzo/advent-of-code-2024"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanmalonzo%2Fadvent-of-code-2024","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanmalonzo%2Fadvent-of-code-2024/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanmalonzo%2Fadvent-of-code-2024/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanmalonzo%2Fadvent-of-code-2024/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ryanmalonzo","download_url":"https://codeload.github.com/ryanmalonzo/advent-of-code-2024/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246078578,"owners_count":20720171,"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-2024","advent-of-code-2024-python","python"],"created_at":"2024-12-08T09:13:13.550Z","updated_at":"2025-03-28T18:26:20.242Z","avatar_url":"https://github.com/ryanmalonzo.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🎄 Advent of Code 2024\n\nWelcome to my Advent of Code 2024 repository! This project contains my solutions for the daily coding challenges hosted by [Advent of Code](https://adventofcode.com/2024), solved using **Python 3.12**.\n\n## 📂 Repository Structure\n\nEach day’s puzzle solution is stored in its respective folder:\n\n```graphql\n📦 advent-of-code-2024\n├── day_01\n│   ├── part_1.py       # Code for part 1\n│   └── part_2.py       # Code for part 2\n├── day_02\n│   ├── ...\n└── README.md           # Main README\n```\n\nIn accordance with the rules of this event, my input files (`input.txt`) are not included in this repository.\n\n## 🌟 Challenges\n\n- I challenge myself to implement the solutions using **only the Python standard library** so as to improve my knowledge and understanding of the language, while also developing problem-solving skills that can be applied to a wide range of situations.\n- I try to be as concise and efficient as possible, while not disregarding readability.\n- I do not use LLMs; only the Python documentation, StackOverflow and the [Advent of Code subreddit](https://www.reddit.com/r/adventofcode/) if I am stuck, or just for the memes.\n\n## 🏆 Progress\n\n| Day | Part 1 | Part 2 |\n| --- | ------ | ------ |\n| 1   | ✅     | ✅     |\n| 2   | ✅     | ✅     |\n| 3   | ✅     | ✅     |\n| 4   | ✅     | ✅     |\n| 5   | ✅     | ✅     |\n| 6   | ✅     | ✅     |\n| 7   | ✅     | ✅     |\n| 8   | ✅     | ✅     |\n| 9   | ✅     | ✅     |\n| 10  | ✅     | ✅     |\n| 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  | ⏳     | ⏳     |\n\n### 📝 Implementation Notes\n\n\u003e [!WARNING]  \n\u003e The below section contains spoilers with possible approaches to solving the challenges, though other methods exist.\n\n| Day | Part 1                                                                                                        | Part 2                                                                   |\n| --- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------ |\n| 1   |                                                                                                               | Only a 4-line difference                                                 |\n| 2   | _Reports_ can be sorted to check if _levels_ are gradually increasing or decreasing                           |                                                                          |\n| 3   | Regular expressions and capturing groups                                                                      |                                                                          |\n| 4   |                                                                                                               |                                                                          |\n| 5   | Each _update_ operates on a directed acyclic graph, which gives the correct _page_ order to solve the problem | Only a 2-line difference                                                 |\n| 6   |                                                                                                               | Exhaustive search                                                        |\n| 7   | `itertools.product` to get all possible operator combinations                                                 | Only a 3-line difference                                                 |\n| 8   | `itertools.combinations` to get all possible _antenna_ pairs                                                  |                                                                          |\n| 9   |                                                                                                               | Heaps with `heapq` to keep a sorted list of free space indices by length |\n| 10  | Recursion                                                                                                     | Accidentally wrote the code for it while trying to do part 1             |\n| 11  |                                                                                                               | Recursion + counter                                                      |\n| 12  | Breadth-first search (BFS)                                                                                    | Counting convex/concave angles                                           |\n| 13  | [Cramer's rule](https://en.wikipedia.org/wiki/Cramer%27s_rule)                                                | Only a 1-line difference                                                 |\n| 14  |                                                                                                               | The christmas tree is formed when there are no _robots_ overlapping      |\n| 15  |                                                                                                               | BFS                                                                      |\n| 16  | [Dijkstra's algorithm](https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm)                                  |                                                                          |\n| 17  |                                                                                                               | Depth-first search (DFS) + backtracking                                  |\n| 18  | Dijkstra's algorithm                                                                                          |                                                                          |\n| 19  | [Dynamic programming](https://en.wikipedia.org/wiki/Dynamic_programming)                                      |                                                                          |\n| 20  | Dijkstra's algorithm + [Manhattan distance](https://en.wikipedia.org/wiki/Taxicab_geometry)                   | Only a one-character difference                                          |\n| 21  |                                                                                                               |                                                                          |\n| 22  |                                                                                                               |                                                                          |\n| 23  |                                                                                                               |                                                                          |\n| 24  |                                                                                                               |                                                                          |\n| 25  |                                                                                                               |                                                                          |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fryanmalonzo%2Fadvent-of-code-2024","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fryanmalonzo%2Fadvent-of-code-2024","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fryanmalonzo%2Fadvent-of-code-2024/lists"}