Skip to content
This repository has been archived by the owner on Jan 13, 2024. It is now read-only.

๐ŸŽ„ My solutions to the 2023 edition of "Advent of Code".

License

Notifications You must be signed in to change notification settings

FlorianCassayre/AdventOfCode-2023

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

30 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

My solutions to the 2023 edition of Advent of Code.

Previous participations

Problem statements & solutions

In order to make the challenge more interesting, I set myself the following rules:

  • Pure: no usage of var or mutable datastructures
  • Self-contained: no third-party libraries, one file per day (*)
  • Efficient: optimal asymptotic complexity, as far as reasonable
  • Concise: readability is key

Note that these rules do not necessarily apply while solving a problem, but rather when committing the code to this repository.

(*): this rule could be subject to modification, for instance if the puzzles implicitly require it (Intcode in 2019).

Usage

This project runs on Scala 3.3.1 and sbt 1.9.7.

Use the following template to write a solution for a given day:

package adventofcode.solutions

import adventofcode.Definitions.*

@main def Day01 = Day(1) { (input, part) =>

  part(1) = ???

  part(2) = ???

}

(change 1 to the current day number and fill in the ???)

Paste your input as a file named 01.txt in input/.

To run the code, enter sbt run Day01.

The output(s) will be printed to the console and stored in output/ as 01-1.txt and 01-2.txt.

Additionally, the command sbt test will run all the implemented solutions and compare their result against the currently stored output, to detect any potential regression.

License

MIT