Commit Graph

56 Commits

Author SHA1 Message Date
Sebastian Lindemeier ee061757a8 Refactor Day10 to simplify lamp parsing by removing redundant `.Index()` call and unnecessary LINQ chain 2025-12-15 10:28:06 +01:00
Sebastian Lindemeier ed3b577516 Refactor Day12 to simplify LINQ usage in `GetMinTotalPresentArea` by replacing `.Select()` with `.Zip()` 2025-12-15 10:21:31 +01:00
Buddhism8003 3888fd23a8 Used IntegerRange from HelperClasses in solutions for day 02 2025-12-14 14:57:31 +01:00
Buddhism8003 33eb7322a8 Added unit test project for HelperClasses and tests for `IntegerRange.cs`. Implemented IEnumerable on IntegerRange. 2025-12-14 14:45:13 +01:00
Sebastian Lindemeier bef54ff551 Introduce regex-based methods `SolvePart1Regex` and `SolvePart2Regex` in Day02 for another invalid ID detection 2025-12-12 20:37:31 +01:00
Sebastian Lindemeier 024eb77fbe Refactor Day10 to simplify LINQ usage in `GetButtonCombinations` by removing unnecessary `.Select()` 2025-12-12 20:20:50 +01:00
Sebastian Lindemeier 0d0d1b2150 Refactor Day10 to replace `GetPatternCosts` with `GetButtonCombinations` and introduce `ButtonCombination` record for improved readability and modularity 2025-12-12 20:19:45 +01:00
Sebastian Lindemeier f4b5111fa0 Refactor Day10 to remove unoptimized methods, simplify input parsing, and improve readability and maintainability of lamp and joltage logic by consolidating bitmask logic 2025-12-12 20:11:53 +01:00
Sebastian Lindemeier 1873ce8e66 Refactor Day10 to optimize pattern cost calculation by introducing bitmasking and grouping logic (speedup from 7 sec to 0.2 sec) 2025-12-12 15:03:01 +01:00
Sebastian Lindemeier aaf32260d0 Extract `Coordinate`, `IntegerRange` and `Coordinate3d` to new `AdventOfCode.HelperClasses` project and refactor solution for modularity and type consistency 2025-12-12 13:14:17 +01:00
Sebastian Lindemeier 85516cd783 Extract `IntArrayEqualityComparer` to new `AdventOfCode.HelperClasses` project and refactor solution to use the shared class 2025-12-12 12:39:31 +01:00
Sebastian Lindemeier d0b612154a Extract `Combinations` method to `AdventOfCode.Extensions` and refactor usages to improve modularity and reduce duplication 2025-12-12 12:35:01 +01:00
Sebastian Lindemeier d92293f631 Refactor Day10 to rename variables for consistency and add `.ToArray()` in `ParsePuzzleInputUnoptimized` to optimize LINQ evaluation 2025-12-12 11:54:39 +01:00
Sebastian Lindemeier 801b96de1d Refactor Day10 to rename variables and improve readability in `GetMinCountInternal` 2025-12-12 11:49:23 +01:00
Sebastian Lindemeier 90b4e59171 Refactor Day10 to rename variables in `GetJoltageLevelsForButtonPattern` for improved clarity 2025-12-12 11:46:07 +01:00
Sebastian Lindemeier ea4ccd11a5 Finally able to remove Z3 from Day 10 thanks tenthmascot 2025-12-12 11:39:03 +01:00
Sebastian Lindemeier ab7af90af9 Refactor Day12 to remove redundant `Where` in presentSizes calculation and adjust method modifier for `GetMinTotalPresentArea` 2025-12-12 07:02:25 +01:00
Sebastian Lindemeier 10b5648b9a Add Day12 implementation with puzzle-solving logic and tests 2025-12-12 06:52:17 +01:00
Sebastian Lindemeier 938f836e1f Refactor Day11 to replace loops with LINQ `Sum` for cleaner aggregation logic and comment out failing test in Day09 2025-12-11 15:04:25 +01:00
Sebastian Lindemeier 3af6cc3233 Refactor Day10 to enhance button and joltage handling, implement Z3 solver for Part 2 logic, and update tests accordingly 2025-12-11 12:05:45 +01:00
Sebastian Lindemeier 3d305d80bf Refactor Day11 to handle missing paths in `paths` dictionary and improve variable usage readability 2025-12-11 08:55:02 +01:00
Sebastian Lindemeier 8f64234925 Add Day11 implementation with puzzle-solving logic and tests 2025-12-11 08:39:25 +01:00
Sebastian Lindemeier 6621a36021 Add Day10 implementation with puzzle-solving logic and tests 2025-12-11 06:02:07 +01:00
Sebastian Lindemeier 82772fd4e0 Refactor Day04 and Day09 to rename methods and variables for improved clarity and update Day09 tests with additional input file and test case 2025-12-11 06:01:54 +01:00
Sebastian Lindemeier 411672d8c3 Refactor Day08 and Day09 to update collection types and method names for improved consistency and clarity 2025-12-09 11:41:41 +01:00
Sebastian Lindemeier 3360b6cfba Refactor Day09 to rename RectangleOverlapsBorder to RectangleCrossesBorder for method clarity 2025-12-09 11:25:23 +01:00
Sebastian Lindemeier 0101f506cb Refactor Day09 to rename MinMax to CoordinatePair and update related method names for consistency 2025-12-09 10:44:32 +01:00
Sebastian Lindemeier a043c574f5 Add Day09 implementation with puzzle-solving logic and tests 2025-12-09 10:39:26 +01:00
Sebastian Lindemeier 1b1c64b103 Refactor Day08 to update data types, optimize method parameters, and improve test logic 2025-12-08 16:55:19 +01:00
Sebastian Lindemeier 9d8a611f76 Refactor Day08 to reorder methods and simplify circuit connection logic 2025-12-08 11:35:09 +01:00
Sebastian Lindemeier a3ac176602 Refactor Day08 to rename variables and extract CreateCircuits method for clarity 2025-12-08 11:26:31 +01:00
Sebastian Lindemeier 36d7a3f4e5 Refactor Day08 to simplify AddToCircuits logic 2025-12-08 11:14:18 +01:00
Sebastian Lindemeier c559f61496 Refactor Day08 to simplify circuit merge logic 2025-12-08 10:54:19 +01:00
Sebastian Lindemeier 52bf32f692 Refactor Day07 to rename variables and fix return type for timeline count methods 2025-12-08 10:32:56 +01:00
Sebastian Lindemeier 249e092494 Refactor Day07 to rename variables for clarity in timeline count recursion logic 2025-12-08 10:31:15 +01:00
Sebastian Lindemeier 14e4a8dfe9 Refactor Day07 to simplify timeline count logic and remove redundant methods 2025-12-08 10:19:31 +01:00
Sebastian Lindemeier 92ef64fd88 Refactor Day07 to extract common coordinate enqueue logic 2025-12-08 10:03:43 +01:00
Sebastian Lindemeier 629467f376 Refactor Day08 to improve readability with LINQ 2025-12-08 09:35:26 +01:00
Sebastian Lindemeier 7a02ba6b0e Refactor Day08 to improve readability 2025-12-08 09:19:33 +01:00
Sebastian Lindemeier b60db3c78a Refactor Day08 to improve readability and speed 2025-12-08 09:13:17 +01:00
Sebastian Lindemeier 04d9b2fd45 Add Day 08 solution 2025-12-08 08:51:43 +01:00
Sebastian Lindemeier afc7997fa2 Add another Day07 part 2 solution, that's way simpler 2025-12-08 07:00:50 +01:00
Sebastian Lindemeier 62f46aff7d Refactor Day07 to extract node visited count update logic 2025-12-07 17:51:57 +01:00
Sebastian Lindemeier f0ac76df15 Add Day 07 solution 2025-12-07 17:48:20 +01:00
Sebastian Lindemeier 6e3d180550 Refactor Day06 to simplify operand handling and with using Zip-LINQ method 2025-12-07 17:46:54 +01:00
Sebastian Lindemeier b03404fe6a Refactor Day06 to use LINQ for parsing numbers by column 2025-12-06 13:55:52 +01:00
Sebastian Lindemeier 90be974d36 Refactor Day06 to improve readability 2025-12-06 13:36:10 +01:00
Sebastian Lindemeier 1edbfab132 Refactor Day06 to use less ToArray() 2025-12-06 10:58:05 +01:00
Sebastian Lindemeier 47f468ff68 Add Day 06 solution, needs cleanup later 2025-12-06 10:54:11 +01:00
Sebastian Lindemeier fd417a6e97 Refactor range combining logic for future reusability 2025-12-05 10:59:44 +01:00