adventofcode
advent_of_code_ex
adventofcode | advent_of_code_ex | |
---|---|---|
5 | 2 | |
6 | 0 | |
- | - | |
9.1 | 7.0 | |
about 1 month ago | 5 months ago | |
HTML | Elixir | |
- | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
adventofcode
-
Advent of Code 2023 is nigh
I disagree on it being "overthinking". I just did it without thinking. Saw that it failed on the "eightwo" case since "two" got replaced first, so just replaced "two" with "two2two" instead, then passed it through solver for part1. To me that's simpler and more naive than correctly writing a search or backwards-forwards regex :)
My solution in Kotlin https://github.com/kolonialno/adventofcode/commit/686cbebb07...
-
-🎄- 2022 Day 13 Solutions -🎄-
Full code here: https://github.com/kolonialno/adventofcode/commit/13c09d85a322a4ca3f8901fa58119f46cbf45a2c
-
-🎄- 2021 Day 21 Solutions -🎄-
This is my fast and final approach btw https://github.com/kolonialno/adventofcode/blob/main/matsemann/Day21.kt
- -🎄- 2021 Day 18 Solutions -🎄-
- -🎄- 2021 Day 8 Solutions -🎄-
advent_of_code_ex
-
Advent of Code 2023 is nigh
> Test your code as you go. Printing the output of intermediate steps to the console is a great way of catching bugs.
Honestly, just set up whatever you need to be able to write unit tests in your lang of choice. These problems are _so_ amenable to a piecewise approach driven by tests. I'm not like a big TDD advocate or anything, but these problems are great practice for that style of coding - it's just so damn useful to know each of your small pieces of code work.
Parameterized tests are amazing for AoC, because you can get a handful of test cases basically for free from the puzzle description. If your code doesn't work once you've got all the samples working, you either have some weird edge case that you didn't consider, or you've got one of the brute-force killer puzzles.
Even for today's, I wound up with 43 different test cases. The vast majority of those are from the puzzle text, and adding them didn't really make the puzzle take that much longer. (Obviously, if you're optimizing for solve speed, you probably wouldn't bother with this approach, but I'm not).
https://github.com/epiccoleman/advent_of_code_ex/blob/master...
Another thing of note is that every puzzle basically operates on a list of strings, so it's pretty easy to genericize certain parts of the work of solving puzzles. I have a script which generates a module for the solution in my repo, with separate functions for each part that receive the input, and a test file that has tests for part 1 and part 2. The tests read the input file and pass it as a list of strings (lines) to the part_1 and part_2 functions, so that all the boilerplate is already done, and I get to just focus on writing the guts of the part_1 and part_2 functions (which usually get broken down into several other functions, which can also be tested individually).
What are some alternatives?
AdventOfCode2021 - Advent of code 2021
advent2023 - scribblings at advent of code 2023
adventofcode - Advent of Code solutions of 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 and 2023 in Scala
advent-of-code - Advent of Code 2022 solutions
kino_aoc - A helper for Advent of Code (a smart cell) for Elixir Livebook
tanenbaum - OCaml Advent of Code starter project
adventofcode - :christmas_tree: Advent of Code (2015-2023) in C#
aoc - Advent of Code - mscha's Perl 6 solutions
AdventOfCode2023
Advent_of_Code_in_Pascal - My solutions to the Advent of Code, in Free Pascal
fs_playground - F# Playground