{"id":17416529,"url":"https://github.com/jromero132/advent-of-code","last_synced_at":"2025-08-22T14:31:27.201Z","repository":{"id":64376578,"uuid":"575083779","full_name":"jromero132/advent-of-code","owner":"jromero132","description":"All my Advent of Code solutions. Also a CLI tool for managing and testing Advent of Code challenges.","archived":false,"fork":false,"pushed_at":"2025-01-31T03:53:46.000Z","size":2573,"stargazers_count":10,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-20T03:24:43.073Z","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","advent-of-code-2024","adventofcode","algorithms","algorithms-and-data-structures","aoc","awesome","awesome-python","problem-solving","python","python3"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"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/jromero132.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":".github/funding.yml","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},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":"jromero132","thanks_dev":null,"custom":null}},"created_at":"2022-12-06T18:10:03.000Z","updated_at":"2025-01-31T03:53:50.000Z","dependencies_parsed_at":"2025-02-10T21:01:16.591Z","dependency_job_id":"efc689aa-f97c-4708-9150-540b1b5c655f","html_url":"https://github.com/jromero132/advent-of-code","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jromero132/advent-of-code","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jromero132%2Fadvent-of-code","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jromero132%2Fadvent-of-code/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jromero132%2Fadvent-of-code/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jromero132%2Fadvent-of-code/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jromero132","download_url":"https://codeload.github.com/jromero132/advent-of-code/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jromero132%2Fadvent-of-code/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271652374,"owners_count":24797054,"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","status":"online","status_checked_at":"2025-08-22T02:00:08.480Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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","advent-of-code-2024","adventofcode","algorithms","algorithms-and-data-structures","aoc","awesome","awesome-python","problem-solving","python","python3"],"created_at":"2024-10-17T02:00:39.496Z","updated_at":"2025-08-22T14:31:27.189Z","avatar_url":"https://github.com/jromero132.png","language":"Python","funding_links":["https://buymeacoffee.com/jromero132"],"categories":["Project Templates","🎄 2024 AoC Solutions"],"sub_categories":["Solutions"],"readme":"# 🎄 Advent of Code Solutions \u003c!-- sum of stars 1: begin --\u003e(⭐ 256)\u003c!-- sum of stars 1: end --\u003e and CLI 🎄\n\n[![Buy Me a Coffee](https://img.shields.io/badge/Buy%20Me%20a%20Coffee-ffdd00?logo=buy-me-a-coffee\u0026logoColor=black)](\u003chttps://buymeacoffee.com/jromero132\u003e \"Buy Me a Coffee - jromero132\")\n[![Advent of Code](https://img.shields.io/badge/Advent%20of%20Code-ffff66?logo=adventofcode\u0026logoColor=000)](\u003chttps://adventofcode.com/\u003e \"Advent of Code homepage\")\n[![Made with Python](https://img.shields.io/badge/Python-\u003e=3.10-blue?logo=python\u0026logoColor=white)](\u003chttps://python.org\u003e \"Go to Python homepage\")\n![Last commit](https://img.shields.io/github/last-commit/jromero132/advent-of-code \"Last commit\")\n\n---\n\u003c!-- Badges of stars: begin --\u003e\n[![AoC 2015](https://img.shields.io/badge/2015-⭐%2020-gray?logo=adventofcode\u0026labelColor=8a2be2)](https://adventofcode.com/2015)\n[![AoC 2016](https://img.shields.io/badge/2016-⭐%2020-gray?logo=adventofcode\u0026labelColor=8a2be2)](https://adventofcode.com/2016)\n[![AoC 2017](https://img.shields.io/badge/2017-⭐%2020-gray?logo=adventofcode\u0026labelColor=8a2be2)](https://adventofcode.com/2017)\n[![AoC 2018](https://img.shields.io/badge/2018-⭐%2020-gray?logo=adventofcode\u0026labelColor=8a2be2)](https://adventofcode.com/2018)\n[![AoC 2019](https://img.shields.io/badge/2019-⭐%2020-gray?logo=adventofcode\u0026labelColor=8a2be2)](https://adventofcode.com/2019)  \n[![AoC 2020](https://img.shields.io/badge/2020-⭐%2020-gray?logo=adventofcode\u0026labelColor=8a2be2)](https://adventofcode.com/2020)\n[![AoC 2021](https://img.shields.io/badge/2021-⭐%2020-gray?logo=adventofcode\u0026labelColor=8a2be2)](https://adventofcode.com/2021)\n[![AoC 2022](https://img.shields.io/badge/2022-⭐%2028-gray?logo=adventofcode\u0026labelColor=8a2be2)](https://adventofcode.com/2022)\n[![AoC 2023](https://img.shields.io/badge/2023-⭐%2038-gray?logo=adventofcode\u0026labelColor=8a2be2)](https://adventofcode.com/2023)\n[![AoC 2024](https://img.shields.io/badge/2024-⭐%2050-gray?logo=adventofcode\u0026labelColor=8a2be2)](https://adventofcode.com/2024)  \n\u003c!-- Badges of stars: end --\u003e\n---\nThis project contains all my solutions \u003c!-- sum of stars 2: begin --\u003e(⭐ 256)\u003c!-- sum of stars 2: end --\u003e for\n[Advent of Code](https://adventofcode.com/) challenges.\n\n\u003e [!TIP]\n\u003e If you are interested in other repositories containing solutions, you can check this compendium: \u003chttps://github.com/jromero132/really-awesome-advent-of-code\u003e.\n\n\u003e [!WARNING]\n\u003e Note that ***this project can automatically download tasks and inputs and submit your solutions*** to the Advent of\n\u003e Code server. Please use it moderately.\n\nA brief introduction taken from the website:\n\u003e Advent of Code is an Advent calendar of small programming puzzles for a variety of skill sets and skill levels that\n\u003e can be solved in any programming language you like. People use them as interview prep, company training, university\n\u003e coursework, practice problems, a speed contest, or to challenge each other.\n\nIn addition, this project contains a command-line application for managing, testing, solving and submitting\nAdvent of Code challenges. This tool allows users to create challenge setups, run tests, generate\ntest files, and provides solutions for various tasks.\n\n\u003e [!IMPORTANT]\n\u003e Take into account that if all tests passed and you select the option `-a` or `--answer` then\n\u003e the puzzle will be solved, and the output will be copied to the clipboard, so it can be\n\u003e easily pasted in the Advent of Code website. Also note that if you select the option\n\u003e `-s` or `--submit` then this answer will be automatically submitted to the Advent of Code\n\u003e server and you will get a console message to let you know whether you answered the task\n\u003e correctly or not 😄\n\n## Table of Contents\n\n\u003c!-- no toc --\u003e\n- [Advent of Code Solutions and CLI](#-advent-of-code-solutions--and-cli-)\n    - [Stats](#-stats)\n    - [Features](#features)\n    - [Installation](#installation)\n    - [Usage](#usage)\n        - [Commands](#commands)\n    - [Solutions](#solutions)\n        - [Directory Structure](#directory-structure)\n    - [Contributing](#contributing)\n    - [License](#license)\n\n## 🎄 Stats\n\nFor every year, the Advent of Code calendar has `25` challenges with `2` tasks per challenge. Every task gives you a\nstar ⭐️ so the maximum amount of stars for a year is `50`.\n\n\u003c!-- Table summary of years: begin --\u003e\n| Year | Stars | Advent of Code Link |\n| :--: | :---: | :--: |\n| [2015](year/2015) | ⭐️20  | https://adventofcode.com/2015 |\n| [2016](year/2016) | ⭐️20  | https://adventofcode.com/2016 |\n| [2017](year/2017) | ⭐️20  | https://adventofcode.com/2017 |\n| [2018](year/2018) | ⭐️20  | https://adventofcode.com/2018 |\n| [2019](year/2019) | ⭐️20  | https://adventofcode.com/2019 |\n| [2020](year/2020) | ⭐️20  | https://adventofcode.com/2020 |\n| [2021](year/2021) | ⭐️20  | https://adventofcode.com/2021 |\n| [2022](year/2022) | ⭐️28  | https://adventofcode.com/2022 |\n| [2023](year/2023) | ⭐️38  | https://adventofcode.com/2023 |\n| [2024](year/2024) | ⭐️50  | https://adventofcode.com/2024 |\n\u003c!-- Table summary of years: end --\u003e\n\n## Features\n\n- **Solutions**: Includes implementations for solving Advent of Code challenges.\n- **Create Challenges**: Set up new Advent of Code challenges for a specified year and day.\n- **Generate Test Files**: Create multiple test files for a given task.\n- **Run Tests**: Execute tests for specific tasks with options to continue on failure and solve the\ntask in case all tests passed. Take into account that if the puzzle is solved, then the output will\nbe copied to the clipboard 😄\n- **Submit Answer**: Allows you to automatically submit your answer for a specific task in the\nAdvent of Code challenges. This feature is essential if you who want to validate your solutions\nagainst the official Advent of Code server without having to do it manually.\n\nThe `vscode_tasks` directory along with the `.vscode` directory enhances the development experience\nfor Advent of Code solutions by providing utility scripts and configurations specifically designed\nfor use within Visual Studio Code. This feature streamlines the process of executing and testing\nsolutions, making it easier to validate outputs and manage tasks. This will add a launch\nconfiguration to run the current open file solution and 2 tasks, one for running the solution and\nthe other one for testing the solution.\n\n## Installation\n\nThis application is cross-platform, so it works on Linux, MacOS and Windows. To use it, ensure you\nhave `Python \u003e= 3.10` installed. Clone the repository and install the required dependencies:\n\n```bash\ngit clone https://github.com/jromero132/advent-of-code\ncd advent-of-code\npip install -r requirements.txt\necho \"AOC_COOKIE=\u003cyour-aoc-session-cookie\u003e\" \u003e .env\n```\n\n\u003e [!NOTE]\n\u003e The `AOC_COOKIE` is your Advent of Code session cookie. You can search for it pressing `F12`\nand going into the `Network` tab in your browser.\n\n## Usage\n\nThe application provides several commands. Use the `--help` option with the app or any command to\nsee its usage.\n\n### Commands\n\n- `create`: Create a new Advent of Code challenge.\n- `maketests`: Create test files for one Advent of Code challenge.\n- `test`: Run tests for one Advent of Code challenge.\n\n## Solutions\n\nThis project includes all my solutions for Advent of Code challenges. You can run the solutions\ndirectly or use the CLI to test them against provided inputs.\n\n### Directory Structure\n\nEach solution is organized by year, day and task, allowing easy access to the implementations.\n\n```tree\nadvent-of-code\n├── ...\n├── year\n│   ├── 2015\n│   │   ├── day01\n│   │   │   ├── task1\n│   │   │   │   ├── tests\n│   │   │   │   │   ├── 01.in\n│   │   │   │   │   ├── 01.out\n│   │   │   │   │   └── ...\n│   │   │   │   ├── description.md\n│   │   │   │   └── main.py\n│   │   │   ├── task2\n│   │   │   │   └── ...\n│   │   │   ├── task.in\n│   │   │   ├── task1.out\n│   │   │   └── task2.out\n│   │   ├── ...\n│   │   └── day25\n│   │       └── ...\n│   ├── ...\n│   └── 2023\n│       └── ...\n└── ...\n```\n\n`year/**`: Contains subdirectories for each year of challenges. For instance, from 2015 to 2023.\n\n`day##/**`: Contains the solutions and additional files for each specified day of the Advent of Code\nchallenges. The days are numbered from `01` to `25`. Inside each day directory you will find:\n\n- `task1/**`: This directory contains the solution for the first task of the Advent of Code\nchallenge for a specific year and day.\n    - `tests/*`: This directory contains input and output files used for validating the solutions of\n    the Advent of Code tasks. It is organized to facilitate testing and comparison of the\n    implemented solutions against expected results.\n        - `*.in`: This file contains sample input data that can be used to test the functionality of\n        the solutions.\n        - `*.out`: This file contains the expected output corresponding to the input data in `*.in`.\n        It serves as a reference for validating the correctness of the solution by comparing the\n        actual output generated by the program against this expected result.\n    - `main.py`: This file contains the implementation of the solution for the respective task. It\n    processes the input data from `task.in`, `tests/*.in` or custom input provided through the\n    standard input, executes the necessary logic to solve the challenge, and generates the output.\n- `task2/**`: This directory contains the solution for the second task of the Advent of Code\nchallenge for a specific year and day. It has the same structure as the `task1` directory.\n- `task.in`: This file contains my personal input data required for both tasks solutions for the\nspecified year and day.\n- `task1.out`: This file contains my output or solution for the first task. It serves as a record\nof the result generated by my implementation based on the input provided in `task.in`.\n- `task2.out`: This file contains my output or solution for the second task. It serves as a record\nof the result generated by my implementation based on the input provided in `task.in`.\n\n## Contributing\n\nContributions are welcome! Please open an issue or submit a pull request for any improvements or bug\nfixes.\n\n## License\n\nThis project is licensed under the MIT License - see the [license](license) file for details.\n\n### Happy Coding! 🚀\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjromero132%2Fadvent-of-code","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjromero132%2Fadvent-of-code","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjromero132%2Fadvent-of-code/lists"}