my solutions for the advent of code 2023 in Rust, Python, JS and TS
Go to file
2023-12-23 13:57:37 +01:00
.github/workflows update lint packages 2023-12-10 17:34:37 +01:00
Day01 prettify and lint optimization 2023-12-10 17:24:14 +01:00
Day02 prettify and lint optimization 2023-12-10 17:24:14 +01:00
Day03 prettify and lint optimization 2023-12-10 17:24:14 +01:00
Day04 lint and analysis 2023-12-15 22:46:01 +01:00
Day05 prettify and lint optimization 2023-12-10 17:24:14 +01:00
Day06 prettify and lint optimization 2023-12-10 17:24:14 +01:00
Day07 prettify and lint optimization 2023-12-10 17:24:14 +01:00
Day08 prettify and lint optimization 2023-12-10 17:24:14 +01:00
Day09 prettify and lint optimization 2023-12-10 17:24:14 +01:00
Day10 add title image 2023-12-12 17:36:28 +01:00
Day11 add title image 2023-12-12 17:36:28 +01:00
Day12 improve python algorithm on Day04 2023-12-12 21:13:27 +01:00
Day13 lint and analysis 2023-12-15 22:46:01 +01:00
Day14 lint and analysis 2023-12-15 22:46:01 +01:00
Day15 lint and analysis 2023-12-15 22:46:01 +01:00
Day16 solved Day16 in python 2023-12-16 21:35:31 +01:00
Day17 solve Day17 Part One in python 2023-12-18 22:03:24 +01:00
Day18 solve Day18 in Rust 2023-12-18 18:05:55 +01:00
Day19 quick lint 2023-12-21 22:02:54 +01:00
Day20 quick lint 2023-12-21 22:02:54 +01:00
Day21 quick lint 2023-12-21 22:02:54 +01:00
Day22 adding puzzle Day22 2023-12-23 13:57:20 +01:00
Day23 adding puzzle Day23 2023-12-23 13:57:37 +01:00
.eslintignore add linting workflows 2023-12-06 20:39:05 +01:00
.eslintrc.js fix lint rules and small readme improve 2023-12-06 21:05:52 +01:00
.flake8 add linting workflows 2023-12-06 20:39:05 +01:00
.gitignore prettify and lint optimization 2023-12-10 17:24:14 +01:00
Analytics.md lint and analysis 2023-12-15 22:46:01 +01:00
LICENSE add GNU License 2023-12-06 20:10:54 +01:00
lint.sh prettify and lint optimization 2023-12-10 17:24:14 +01:00
measure_performance.sh fix lint rules and small readme improve 2023-12-06 21:05:52 +01:00
package-lock.json solve Day08 in JS/TS 2023-12-10 12:32:32 +01:00
package.json solve Day08 in JS/TS 2023-12-10 12:32:32 +01:00
README.md solve Day19 in python 2023-12-19 21:34:24 +01:00
title_image.png add title image 2023-12-12 17:36:28 +01:00
tsconfig.json solve Day09 Part1 in python 2023-12-10 13:21:35 +01:00

🎄 Advent of Code 2023 🎄

Build Status Completed Stars License

Welcome to my repository where I share my solutions for the Advent of Code 2023. Advent of Code is an annual online event where participants solve a series of programming puzzles released daily from December 1st until December 25th. Each puzzle is a fun and unique challenge designed to test problem-solving skills.

Structure

This repository is organized to make navigation through the solutions as seamless as possible. Each day's puzzle solution is in its respective folder, named DayXX, where XX is the day of the month.

  • Day01
  • Day02
  • ...
  • Day25

Within each folder, you'll find:

  • README.md: A brief description of the day's problem.
  • Source code files: My solution for the day's puzzle, typically in Python or Rust
  • input.txt: The input data provided for the puzzle. (add those yourself as we don't provide those for legal reasons)
  • Additional resources or notes if applicable.

My Approach

For Advent of Code 2023, I've decided to primarily use Python due to its readability and the extensive libraries available, which make it an excellent choice for solving diverse and complex problems quickly. In each solution, I focus not only on solving the problem but also on writing clean, efficient, and well-documented code.

📈 Progress

Here I'll track my progress throughout the event. I aim to complete each day's puzzle on the same day, but as with any challenge, there might be some delays.

Day Part One Part Two Reflections
01 Day01 README
02 Day02 README
03 Day03 README
04 Day04 README
05 Day05 README
06 Day06 README
07 Day07 README
08 Day08 README
09 Day09 README
10 Day10 README
11 Day11 README
12 Day12 README
13 Day13 README
14 Day14 README
15 Day15 README
16 Day16 README
17 Day17 README
18 Day18 README
19 Day19 README
20 Day20 README
21 Day21 README
22 Day22 README
23 Day23 README
24 Day24 README
25 Day25 README
  • Completed
  • Not Started / In Progress

Running the Solutions

Each solution is a standalone script.

Python

To run any of the solutions, navigate to the respective day's directory and run the script using a Python interpreter. For example:

cd Day01/python
python3 solution2.py
python3 solution2.py

Make sure you have Python installed on your machine. The solutions are developed using Python 3.x.

Rust

For Rust you have to use the rust project generated in each Day. Make sure you have Rust and Cargo installed. You can either test or run the solution:

cd Day01/rust
cargo test #running tests
cargo run # run with the actual input file

C++

Install a C++ compiler like g++ on your machine. Then:

cd Day01/cpp
g++ -o solution solution.cpp # compile
./solution #run the binary

JavaScript

Using solutions in JavaScript requires NodeJS installed on your system. Then:

cd Day01/js
node solution.js

TypeScript

Normally you can use compile the TS file to JS using the tsc compiler. But for ease in this simple scripts i suggest installing: npm install -g typescript ts-node. With this you can just run the TS file at once and get the output without compiling and running over and over.

cd Day01/ts
ts-node solution.ts

The first part (less complex) is only solved in Python. Therefore the python folder has always two scripts (solution1.py and solution2.py) to solve both parts. All other languages are only implementing the second part.

Feedback and Collaboration

I'm always open to feedback and suggestions for improving the solutions. If you have ideas or find an issue, feel free to open an issue or submit a pull request.