This repository has been archived on 2024-12-22 . You can view files and clone it. You cannot open issues or pull requests or push a commit.
217e770a25f8d6f785807fcdcc987c68936cdf64
My solutions to the Advent of Code 2023 programming challenges.
Thanks to Eric Wastl for creating this enjoyable event.
Requires lib.py from aocpy repository.
Requires sympy for day 24.
Times
- Day 1: 40:00 (I don't know what I am doing.)
- Day 2: 14:15 (Okay, but far way from leaderboard.)
- Day 3: 1st 20:00, 2nd 70:00... (I had a logic error that took me a while to find.)
- Day 4: 1st 9:06, 2nd 22:31; it wasn't hard but I didn't think quick enough :/
- Day 5: 1st 25:00, 2nd 1:55:00; Required patience and accuracy
- Day 6: 13:54; I was slow because I thought it is much harder?
- Day 7: 75:00; leaderboard 16:00... that was just bad; no excuse
- Day 8: 25:00; I was doing pretty decent here.
- Day 9: 57:00; my input parse function did not consider negative values...
- Day 10: 180:00; this one was hard for me.
- Day 11: 68:00; okay but not elegant and way too slow ofc; x-ray solution would have been neat
- Day 12: 52:00 and 22:00 for leaderboard; had the right idea and I am good at this type of problem
- Day 13: 90:00; pretty straightforward but way too slow
- Day 14: 5:55 for first and then 48:00; straightforward but slow, ofc
- Day 15: 4:30 and 31:20; more reading comprehension than programming
- Day 16: 00:27:30 745; best placement so far, of course still horribly slow
- Day 17: a couple of hours; I realized that I need A* after a while; reused implementation from Project Euler but improved with heapq which was super fun
- Day 18: a couple of hours; I realized that I need shoelace algo for part two but didn't realize that I have to compute the outer edges for a while and after I did, I still got clockwise/counter-clockwise issues. They could have made it meaner by using different clock directions for example and input.
- Day 19: This one was pretty straightforward and required the interval technique we applied earlier.
- Day 20: Part 2 was tough. I had the right idea of printing out the periods of the input conjunction gate pretty early, but then messed up the implementation and thought it wasn't gonna work. Spent a half day thinking up something else before returning to the idea and it worked flawlessly.
- Day 21:
- Day 22: Not too hard, but definitely way too slow for leaderboard.
- Day 23: I found this fun because it required some creativity for part 2. Slow af, of course.
- Day 24: Solve problem with sympy. I first used numpy to solve part 1 and it was much faster than using sympy, but I lost that solution when switching to sympy. Takes about three minutes to run for part 1 and then part 2 is under a second.
- Day 25:
Description
Languages
Python
100%