Skip to content

🎁 My completion of Advent of Code 2023 in an enterprise-style codebase with an emphasis on design, readability and testing.

License

Notifications You must be signed in to change notification settings

TomPlum/advent-of-code-2023

Repository files navigation

🎄 Advent of Code 2023

GitHub

What is Advent of Code?

Excerpt from the Advent of Code website;

"Advent of Code is an Advent calendar of small programming puzzles for a variety of skill sets
and skill levels that can be solved in any programming language you like. People use them as a
speed contest, interview prep, company training, university coursework, practice problems, or
to challenge each other."

Contents

Getting Started

Simply clone or download the repository into your local environment and import it as a Gradle project in your IDE. Running Solutions.kt will run the parts from all the completed days, reporting all the answers and runtimes in the console.

Gradle Tasks

Task Description
test Runs the unit tests with coverage for the implementation, solutions and common sub-projects.
detekt Runs DeteKT with the custom configuration rules defined in detekt-config.yml.

IntelliJ Run Configurations

The .run directory contains XML configuration files from IntelliJ. Included are configurations for running the unit tests in the common, implementation and solutions Gradle sub-projects as well as for each specific day.

The Days

The Most Fun

The Most Interesting

The Most Challenging

Answer Table

Day Part 1 Answer Avg Time Part 2 Answer Avg Time Documentation
01 55712 11ms 55413 12ms Trebuchet?!
02 2632 934μs 69629 233μs Cube Conundrum
03 531561 8ms 83279367 36ms Gear Ratios
04 27454 253μs 6857330 444ms Scratchcards
05 388071289 2ms 84206669 - If You Give A Seed A Fertilizer
06 1413720 627μs 30565288 787ms Wait For It
07 250232501 15ms 249138943 2s 786ms Camel Cards
08 12169 1ms 12030780859469 31ms Haunted Wasteland
09 2098530125 4ms 1016 2ms Mirage Maintenance
10 6856 4μs 501 799ms Pipe Maze
11 10292708 25ms 790194712336 19ms Cosmic Expansion
12 7350 13ms 200097286528151 109ms Hot Springs
13 - - - -
14 - - - -
15 516070 676μs 244981 3ms Lens Library
16 6994 32ms 7488 1s 499ms The Floor Will Be Lava
17 698 1s 4ms 825 4s 52ms Clumsy Crucible
18 26857 1ms 129373230496292 246μs Lavaduct Lagoon
19 - - - -
20 684125385 26ms 22803499706691 34ms Pulse Propagation
21 - - - -
22 386 430μs 39933 69ms Sand Slabs
23 2318 372ms 6426 9s 115ms A Long Walk
24 31208 31ms 580043851566574 1s 179ms Never Tell Me The Odds
25 555702 2s 109ms 49 Stars 2μs Snowverload

Average Execution Time: 838ms
Total Execution Time: 12s 582ms
Mac M2 Pro - OpenJDK Runtime Environment Corretto-18.0.2.9.1 - MacOS Sonoma 14.1.2

Advent Calendar

A .GIF of the complete animated calendar goes here once completed.

About

🎁 My completion of Advent of Code 2023 in an enterprise-style codebase with an emphasis on design, readability and testing.

Topics

Resources

License

Stars

Watchers

Forks

Languages