Skip to content

My solutions for the Advent of Code 2024 (in Kotlin)

License

Notifications You must be signed in to change notification settings

R3TRO04/AoC-2024

 
 

Repository files navigation

AoC-2024

My solutions for the Advent of Code 2024 (in Kotlin). Note that the vast majority of the scaffolding and util code was taken from RaphaelTarita's AoC-2023 repository from last year. Thank you honey 🫶🏼

Direct links:

Contents:

  • input: All input files, named as day${day-of-month}.txt
  • output: Output files containing results (and possibly benchmarks) for the different days. Named either day${day-of-month}.txt for a single day or days.txtfor all outputs in one file
  • src/main/kotlin: Kotlin source root
    • com.rtarita: packagae root
      • days: package containing all AoC day solutions, beginning with a (fallback) Day 0 and going to Day 25. Named Day${day-of-month}.kt
      • structure: package containing the infrastructure which defines how AoC Day challenges are defined, executed, benchmarked, outputted and printed to files
        • fmt: utility classes helping me to format the outputs of AoC challenges
      • util: package for .kt files which contain top-level / extension utilities
        • ds: data structures
          • graph: A graph data structure implemented based on adjacency lists
          • heap: A heap data structure implemented based on an array
        • bitops.kt: utilities related to bitwise operations or byte-level conversions
        • collections.kt: various extensions related to kotlin standard collections
        • comparisons.kt: certain utilites concerning Comparables and Comparators
        • generic.kt: control flow or generic utilities
        • internal.kt: internal utilites that are useful for maintaining the infrastructure
        • io.kt: utilities for reading from / writing to files, or working with paths and files in general
        • maths.kt: mathematical utilities, mostly definitions of stdlib functions for other numeric datatypes
        • strings.kt: utilities related to strings and string manipulation
      • main.kt: contains the main function which will execute the current AoC day challenge
  • other top-level files: build files, license, etc.

Languages

  • Kotlin 100.0%