advent_of_code
advent_of_code | AdventOfCode2021 | |
---|---|---|
4 | 12 | |
1 | 1 | |
- | - | |
8.4 | 2.6 | |
4 months ago | over 2 years ago | |
Rust | Perl | |
MIT License | - |
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.
advent_of_code
-
[2022][Friendly Reminder] Don't commit your input files to Git
Caution: the method I used is not recommended. Use at your own risk, know what you're doing, and have plenty of backups, etc. That said, here are my notes.
-
-🎄- 2022 Day 9 Solutions -🎄-
Once I figured out how to elegantly move the tail using signum() in part 2 it became so much cleaner. Full code is on GitHub, but here's the core of it:
- -🎄- 2022 Day 6 Solutions -🎄-
-
-🎄- 2021 Day 6 Solutions -🎄-
Group the fish by their timer, which can be anything from 0 to 8. The neat part is the rotate_left to decrease the timers of each group. Fish with timer 0 will automatically end up at timer 8, and so the only thing left to do is adding another copy with timer 6. Core function: rust fn multiply(timers: Vec, generations: usize) -> usize { // Index equals timer value, so index 0 contains the count of fish with timer 0 let mut counts_by_timer = vec![0usize; 9]; timers.into_iter().for_each(|f| { counts_by_timer[f] += 1; }); for _ in 0..generations { // A left rotation represents the timer (=index) decreasing by 1. // The fish with timer 0 will not only produce new fish with timer 8, // but also reset their timer to 6 let count_of_fish_with_timer_0 = counts_by_timer[0]; counts_by_timer.rotate_left(1); counts_by_timer[6] += count_of_fish_with_timer_0; // == counts_by_timer[8] } counts_by_timer.into_iter().sum() } Full code at Github
AdventOfCode2021
-
-🎄- 2021 Day 18 Solutions -🎄-
Full program on GitHub.
-
-🎄- 2021 Day 15 Solutions -🎄-
Full program including code to deal with heaps, on GitHub.
-
[2021 Day 11 (Part 2)] What input takes the most steps to synchronize?
Program I used for the above results
-
-🎄- 2021 Day 8 Solutions -🎄-
See my solution on GitHub.
-
Day 6 Proof of Correctness
Note also that you can solve this without a complexity dependency on n. Most solutions I have seen, including mine run in time O(tD), where t is the maximum value of a timer, and D the number of generation, requiring O(t) memory. (This is assuming we can do the required arithmetic operations in constant time, and each numbers require a fixed around of memory storage; if the number of fish gets huge, throw in an additional log n in the complexities, where n is the number of fish on the final day).
-
-🎄- 2021 Day 6 Solutions -🎄-
Based on my matrix exponentiation solution, here is a closed-form solution:
-
How do I read today's input ? Part 1
In my Perl solution of today (I assume, you mean 2021, Day 4), I read stuff in paragraph mode ($/ = "") which makes Perl split input on 2 or more newlines.
-
2021 Day #4 (Part 1) [Native Python ONLY] - Conceptual Guidance?
I considered doing that for my (Perl) solution, but given the cards are small, that seemed overkill.
-
-🎄- 2021 Day 4 Solutions -🎄-
Python implementation on GitHub
What are some alternatives?
adventofcode - adventofcode.com solutions
Elixir - Elixir is a dynamic, functional language for building scalable and maintainable applications
adventofcode - Advent of Code 2022 as part of getting back into Python https://adventofcode.com/
Advent-of-code - My solutions of adventofcode.com
Advent_of_Code_2021_Solutions_Java - Personal AoC/2021 Solutions in Java
adventofcode - Advent of Code solutions of 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 and 2023 in Scala
adventofcode - Advent of Code challenge solutions
adventofcode - Solutions for problems from AdventOfCode.com
adventofcode
adventofcode - Advent of code solutions
advent-of-code-2021 - My solutions to advent of code 2021 in deno/TS
advent-of-code - Advent of Code Solutions