This repository contains my solutions to the Advent of Code 2023 challenges. Advent of Code is an Advent calendar of small programming puzzles for a variety of skill sets and skill levels.
The challenges are designed to be solved in any programming language and cover a wide range of topics, including:
- Parsing and processing text
- Implementing algorithms and data structures
- Simulating simple systems and state machines
- Solving mathematical problems
Each day's challenge is divided into two parts, with the second part typically building upon the first part in some way. The challenges are designed to be approachable for beginners, but also offer a challenge for more experienced programmers.
Each day of the Advent of Code challenge is organized into its own directory, named dayXX, where XX is the day of the challenge (e.g., day01, day02, etc.). Inside most of the day's directories, you will find the following files:
app_01.js
: The solution to the first part of the day's challenge.app_02.js
: The solution to the second part of the day's challenge.input.txt
: The input data provided by the Advent of Code system for the day's challenge.test_input.txt
: A sample of the input data for testing purposes.
For the problems that I found very challenging, several attemps were necessary, and there might be some additional files containing various attemps, such as app_03.js
etc.
From my side, I used JavaScript to solve these challenges and from day08, took the opportunity to try Bun as a new Javascript runtime, just for the sake of installing it on my machine and trying something new, even if in this context, nothing leverage the various "selling points" of Bun.
You can navigate through the directory and run bun app_01.js
or bun app_02.js
(it should also work with node app_01.js
or node app_02.js
also) to get the answers of the challenges.
Note that each participant gets a different dataset to work on, therefore, the answers of "my" challenges may not be the same as yours.
Some of these mind twisting challenges remained unsolved unfortunatly, notably the day03 part02 and day05 part02.
Some of the answers to these challenges are not optimized, meaning that it might be necessary to let the script run for a long time before getting the answer of the challenge. I tried to focus on solving the challenges in the first place, and then, if time allows me, I can spend time in solving the challenges in a good way. The objective being to take some pleasure in this experience, I really looked for the "excitement rush" of getting the answers right rather than getting the answers beautifully. The objective is to learn things and to have fun after all.
You can contact me via:
This project and work is licensed under the CC0 license.