From e655580b3fdf61b9b1d356a21c82010db122e276 Mon Sep 17 00:00:00 2001 From: Felix Martin Date: Sat, 13 Dec 2025 20:27:47 -0500 Subject: [PATCH] Setup for 2025 --- 2025/d01.py | 5 + 2025/lib.py | 1 + README.md | 534 +++++++++++++++++++++++++++------------------------- lib.py | 2 +- 4 files changed, 281 insertions(+), 261 deletions(-) create mode 100644 2025/d01.py create mode 120000 2025/lib.py diff --git a/2025/d01.py b/2025/d01.py new file mode 100644 index 0000000..5cfc6fd --- /dev/null +++ b/2025/d01.py @@ -0,0 +1,5 @@ +from lib import get_data + +data = get_data(__file__) +print(data) + diff --git a/2025/lib.py b/2025/lib.py new file mode 120000 index 0000000..c1b5c82 --- /dev/null +++ b/2025/lib.py @@ -0,0 +1 @@ +../lib.py \ No newline at end of file diff --git a/README.md b/README.md index 9970f48..1d57067 100644 --- a/README.md +++ b/README.md @@ -2,244 +2,40 @@ Solutions and utility script for Advent of Code challenges in Python. -## AoC 2015 +## AoC 2025 -- Day 1: 3:10 -- Day 2: 5:24 :/ -- Day 3: 7:26 ... :/ -- Day 4: 5:11 ... -- Day 5: 14:05 o.O -- Day 6: 15:00 -- Day 7: 17:00 -- Day 8: 14:55 -- Day 9: 13:48 -- Day 10: 70:00 ... slow, but fun -- Day 11: 12:30 -- Day 12: 6:03 -- Day 13: 7:06 (would have been first by a minute, probably 70ish in 2023) -- Day 14: 27:45 ... that was weak, logic error for part 2 :/ -- Day 15: 16:00 I should probably stop brute forcing these optimization problems -- Day 16: 19:00 -- Day 17: 9:05 -- Day 18: 10:39 -- Day 19: Many days... yeah this one took me way too long to figure out -- Day 20: 10:54 -- Day 21: 25:52 cute bug where I didn't consider that no armor is an option -- Day 22: That was bad. Did not know how to choose between dfs/bfs and logic errors. -- Day 23: 10:00 -- Day 24: 20:00 ugly - recursive solution would be more elegant -- Day 25: 9:34 +Only twelve problems and no leaderboard this year. That means life will be less +stressful and this will actually be more fun. Thank you Eric Wastl and let's go! -## AoC 2016 +- Day 1: -- Day 1: 29:00 That was emberassingly slow. Out of my rhythm? -- Day 2: 13:24 Getting back into it but still slow af, obviously. -- Day 3: 11:20 Ugly and slow. -- Day 4: 21:05 -__- -- Day 5: 29:35 -___- -- Day 6: 4:20 okay -- Day 7: 31:20 hmm -- Day 8: 14:50 meh -- Day 9: 26:00 okay -- Day 10: 23:07 okay -- Day 11: 75:00 -__- -- Day 12: 10:05 okay -- Day 13: 9:43 okayish -- Day 14: 120:00 struggled with this one (example incorrect?) -- Day 15: Trial and error. Should use CRT instead. -- Day 16: 14:11 -- Day 17: 45:00 didn't follow instructions... focus! -- Day 18: 9:43 -- Day 19: 90:00 that wasn't easy for me -- Day 20: 67:00 -- Day 21: 32:33 -- Day 22: 90:00 -- Day 23: 60:00 -- Day 24: 48:00 -- Day 25: 6:45 +## AoC 2024 -## AoC 2017 - -- Day 1: 7:30 -- Day 2: 6:15 -- Day 3: 75:00 hmm should have been way quicker -- Day 4: 3:02 -- Day 5: 6:13 -- Day 6: 8:37 -- Day 7: 19:22 -- Day 8: 8:15 -- Day 9: 6:10 -- Day 10: 55:00 -- Day 11: 66:06 -- Day 12: 6:44 -- Day 13: 120:00 -- Day 14: 17:48 -- Day 15: 11:40 -- Day 16: 13:16 -- Day 17: 55:00 -- Day 18: 23:00 -- Day 19: 45:00 -- Day 20: 9:55 (would have been 10th) -- Day 21: 90:00 -- Day 22: 25:00 -- Day 23: Multiple days... but super fun. -- Day 24: 15:45 (48th) -- Day 25: 41:00 - -## AoC 2018 - -- Day 1: 1:49 (2nd) -- Day 2: 10:53 -- Day 3: 6:16 (24th) -- Day 4: 25:16 -- Day 5: 17:03 -- Day 6: 1:10:29 -- Day 7: 20:15 -- Day 8: 18:35 -- Day 9: 1:17:52 -- Day 10: 19:14 -- Day 11: 22:52 -- Day 12: 180:00 -- Day 13: 73:09 -- Day 14: 20:48 -- Day 15: 185:11 -- Day 16: 36:10 -- Day 17: 180:00 -- Day 18: 24:04 -- Day 19: days (super fun, but hard for me) -- Day 20: weeks (a cache was all it took - weak) -- Day 21: 28:40 (16th - brute force but still not so bad) -- Day 22: 185:00 (should not have been so slow but was fun) -- Day 23: days -- Day 24: days -- Day 25: 29:20 (slow) - -## AoC 2019 - -- Day 1: 4:25 (copy and paste error, no leaderboard) -- Day 2: 7:07 (19th) -- Day 3: 10:46 (37th) -- Day 4: 8:48 (just too slow, no leaderboard) -- Day 5: 34:24 (that wasn't hard at all) -- Day 6: 23:17 (so slow, no leaderboard) -- Day 7: 72:17 (I found that one challenging, 30:33 would have been required for leaderboard) -- Day 8: 08:55 (54th) -- Day 9: 115:00 (Try to read next time.) -- Day 10: 76:00 (This wasn't easy for me. Fun, though.) -- Day 11: 21:04 (Too slow, but fun.) -- Day 12: days (Took me a while to get the right idea.) -- Day 13: >120:00 (Just struggling so much for some reason.) -- Day 14: >120:00 (Hmm, wasn't that hard either.) -- Day 15: >120:00 (I am really weak at the moment.) -- Day 16: days (Wow. Just too hard for me to solve quickly?) -- Day 17: days (Fun but too tricky for me to be fast.) -- Day 18: days (Slow and slow algorithm.) -- Day 19: 40:00 (Way too slow! Oversight error. Come on.) -- Day 20: days (Not actually that hard but I struggled for no reason.) -- Day 21: days (But it was super fun!) -- Day 22: days (Needed some help...) -- Day 23: 23:13 (Still too slow even though my int computer was in good shape...) -- Day 24: 53:00 (Can I ever even get points at all?) -- Day 25: 70:00 (Well, done at least. Super super fun!) - -## AoC 2020 - -- Day 1: 2:48 (people weren't able to submit because of a website outage) -- Day 2: 4:47 (no leaderboard, you can tell it's getting faster) -- Day 3: 7:06 (way too slow, lol; time to take it seriously) -- Day 4: 14:30 (yo, I am just too slow) -- Day 5: 11:53 (not competitive) -- Day 6: 4:11 (75th, finally on the leaderboard) -- Day 7: 24:39 (bad) -- Day 8: 6:26 (43th, tied George Hotz :) -- Day 9: 7:37 (choked bad) -- Day 10: 34:27 (so weak) -- Day 11: 21:05 (hmmm, I rally have to analyze why I am so slow) -- Day 12: 21:52 (just slow again for an easy problem) -- Day 13: 18:00 (I don't really understand the CRT to be honest) -- Day 14: 40:26 (Made a bunch of mistakes even misunderstanding Python) -- Day 15: 17:57 (Too slow for an easy one like this) -- Day 16: 33:00 (Not too unhappy really.) -- Day 17: 10:00 (40th) -- Day 18: 80:00 (I am struggling with stuff where parsing is involved) -- Day 19: 78:00 (Should have been faster) -- Day 20: 95:00 (Lot's of code) -- Day 21: 23:02 (Simply to slow) -- Day 22: 45:49 (Simple and too slow) -- Day 23: 105:00 (Sad) -- Day 24: 15:38 (Close to leaderboard) -- Day 25: 14:40 (Way too slow) - -## AoC 2021 - -- Day 1: 4:01 (Haha. Why am I so bad?!?!) -- Day 2: 6:36 (Okay. I might as well stop doing these.) -- Day 3: 23:46 (How long can I take when I try to take long?) -- Day 4: 22:18 (No way. Such stupid bugs.) -- Day 5: 13:30 (Decent, but obviously too slow.) -- Day 6: 16:33 (Right idea quickly but then struggled to implement.) -- Day 7: 6:12 (Decent, but too slow again, obviously. Maybe fast enough for part 1.) -- Day 8: 72:00 (Yeah, that was too much of a struggle.) -- Day 9: 8:07 (37th okay, okay) -- Day 10: 15:50 (I was pretty happy with that but double the 100th place.) -- Day 11: 11:43 (Could have been much faster here.) -- Day 12: 19:11 (Okayish, but of course too slow for leaderboard.) -- Day 13: 16:48 (Should have been way faster.) -- Day 14: 25:52 (Not hard but just too slow.) -- Day 15: 19:17 (Not that bad. Multiplying the thing threw me off.) -- Day 16: 50:01 (Way too slow. Was non-trivial but fun. Much better was feasible.) -- Day 17: 21:59 (Not tricky again but struggling for no reason.) -- Day 18: 162:00 (I couldn't figure out how to solve it as a tree so I did the basic way.) -- Day 19: days (Super hard for me but super fun ultimately once I had the right approach.) -- Day 20: 105:00 (That wasn't easy but was able to solve in one go.) -- Day 21: 37:45 (Wasn't hard but I was just too slow.) -- Day 22: 142:00 (Wonderful problem and hard for me but learned something new for sure.) -- Day 23: 81:38 (Fun but obviously not competitive.) -- Day 24: 232:00 (Super hard for me but I am proud of it.) -- Day 25: 15:43 (That could have been much much faster.) - -## AoC 2022 - -Done with this. Overall everything is solvable. It's more about consistency -and focus. Of course, learning more algorithms and techniques helps. - -**Times:** - -- Day 1: 7:52 ... so slow brah :/ top 100 required 2:05... -- Day 2: 22:30 ... I mistyped the first and second was just bad top 100 would - have been 6:16 (doable?) -- Day 3: 13:08 actually decent but top 100 required 5:24 -- Day 4: 7:08 but top 100 required 3:33 still okay -- Day 5: 11:56 but 7:58 for top 100... getting better? -- Day 6: 3:50 but 2:25 for leaderboard :D -- Day 7: 27:55 and 14:47 for leaderboard; okay, I would say -- Day 8: 61:00 and 10:00 for leaderboard; I need template code for searching - coordinate systems -- Day 9: 58:00 and 7:32 for leaderboard; I need code for 2D stuff -- Day 10: 25:20 and 12:17 for leaderboard; okay, okay -- Day 11: 45:00 and 18:00 for leaderboard; arg, it was doable man -- Day 12: 39:45 and 9:46 for leaderboard; the people are ready for their - searches :D -- Day 13: 44:00 and 12:56 for leaderboard; these people are just good, - seriously -- Day 14: 35:00 and 14:54; I just have to get that much quicker... 2D code! -- Day 15: 150:00 and 27:00; I didn't use Manhattan dist initially, lot's of - debugging -- Day 16: 52:00 and 64:00; ARE YOU SAYING I WOULD HAVE MADE THE - LEADERBOARD?!?!?!?!?!?!?! -- Day 17: Second one was fun with having to detect the repetition. -- Day 18: 12:00 and 32:00; really straightforward and of course way too slow. -- Day 19: Slow. (2024-09-13 improved with help from hyper neutrino.) -- Day 20: Struggled way too much. -- Day 21: Straightforward and relatively fast. -- Day 22: Very hard and wasn't able to do hands free. Even the best guys took - over an hour. -- Day 23: Super straightforward, but took me way longer than it should have - because I loose focus and make silly errors. Like back in Middleschool. -- Day 24: Easy. Should have been faster, but no crazy mistakes. Still way too - slow for something easy like this. -- Day 25: Quickly solved via constraint solver. Actual solution much simpler. Don't know - if I would have been able to figure it out. +- Day 1: `00:01:30 124 0 00:02:49 141 0` +- Day 2: `00:05:34 686 0 00:08:21 531 0` +- Day 3: `00:01:48 165 0 00:02:40 56 45` +- Day 4: `00:07:47 1101 0 00:24:07 2410 0` +- Day 5: `00:07:07 679 0 00:23:02 1998 0` +- Day 6: `00:09:43 1082 0 00:16:29 464 0` +- Day 7: `00:12:29 2058 0 00:13:08 1170 0` +- Day 8: `00:15:59 1742 0 00:26:56 2190 0` +- Day 9: `00:48:23 6055 0 01:09:38 3159 0` +- Day 10: `00:19:47 2976 0 00:20:47 2244 0` +- Day 11: `00:05:13 642 0 00:33:07 2673 0` +- Day 12: `00:30:30 3540 0 11:41:33 16212 0` +- Day 13: `00:05:35 225 0 00:55:48 2544 0` +- Day 14: `00:20:41 2136 0 00:35:14 1048 0` +- Day 15: ` >24h 32248 0 >24h 23671 0` +- Day 16: ` >24h 24941 0 >24h 20575 0` +- Day 17: `17:34:16 23722 0 >24h 17778 0` +- Day 18: `14:35:01 20398 0 14:37:18 19550 0` +- Day 19: `00:14:37 2001 0 00:19:43 1584 0` +- Day 20: `01:08:53 3637 0 01:53:01 2837 0` +- Day 21: `00:48:40 215 0 >24h 16427 0` +- Day 22: `00:13:04 1930 0 00:28:29 739 0` +- Day 23: ` >24h 20096 0 >24h 17620 0` +- Day 24: `15:57:01 17307 0 >24h 11326 0` +- Day 25: `10:41:54 14140 0 >24h 13631 0` ## AoC 2023 @@ -289,31 +85,249 @@ and focus. Of course, learning more algorithms and techniques helps. Manually plotting requires matplotlib and networkx packages. -## AoC 2024 +## AoC 2022 -- Day 1: `00:01:30 124 0 00:02:49 141 0` -- Day 2: `00:05:34 686 0 00:08:21 531 0` -- Day 3: `00:01:48 165 0 00:02:40 56 45` -- Day 4: `00:07:47 1101 0 00:24:07 2410 0` -- Day 5: `00:07:07 679 0 00:23:02 1998 0` -- Day 6: `00:09:43 1082 0 00:16:29 464 0` -- Day 7: `00:12:29 2058 0 00:13:08 1170 0` -- Day 8: `00:15:59 1742 0 00:26:56 2190 0` -- Day 9: `00:48:23 6055 0 01:09:38 3159 0` -- Day 10: `00:19:47 2976 0 00:20:47 2244 0` -- Day 11: `00:05:13 642 0 00:33:07 2673 0` -- Day 12: `00:30:30 3540 0 11:41:33 16212 0` -- Day 13: `00:05:35 225 0 00:55:48 2544 0` -- Day 14: `00:20:41 2136 0 00:35:14 1048 0` -- Day 15: ` >24h 32248 0 >24h 23671 0` -- Day 16: ` >24h 24941 0 >24h 20575 0` -- Day 17: `17:34:16 23722 0 >24h 17778 0` -- Day 18: `14:35:01 20398 0 14:37:18 19550 0` -- Day 19: `00:14:37 2001 0 00:19:43 1584 0` -- Day 20: `01:08:53 3637 0 01:53:01 2837 0` -- Day 21: `00:48:40 215 0 >24h 16427 0` -- Day 22: `00:13:04 1930 0 00:28:29 739 0` -- Day 23: ` >24h 20096 0 >24h 17620 0` -- Day 24: `15:57:01 17307 0 >24h 11326 0` -- Day 25: `10:41:54 14140 0 >24h 13631 0` +Done with this. Overall everything is solvable. It's more about consistency +and focus. Of course, learning more algorithms and techniques helps. + +**Times:** + +- Day 1: 7:52 ... so slow brah :/ top 100 required 2:05... +- Day 2: 22:30 ... I mistyped the first and second was just bad top 100 would + have been 6:16 (doable?) +- Day 3: 13:08 actually decent but top 100 required 5:24 +- Day 4: 7:08 but top 100 required 3:33 still okay +- Day 5: 11:56 but 7:58 for top 100... getting better? +- Day 6: 3:50 but 2:25 for leaderboard :D +- Day 7: 27:55 and 14:47 for leaderboard; okay, I would say +- Day 8: 61:00 and 10:00 for leaderboard; I need template code for searching + coordinate systems +- Day 9: 58:00 and 7:32 for leaderboard; I need code for 2D stuff +- Day 10: 25:20 and 12:17 for leaderboard; okay, okay +- Day 11: 45:00 and 18:00 for leaderboard; arg, it was doable man +- Day 12: 39:45 and 9:46 for leaderboard; the people are ready for their + searches :D +- Day 13: 44:00 and 12:56 for leaderboard; these people are just good, + seriously +- Day 14: 35:00 and 14:54; I just have to get that much quicker... 2D code! +- Day 15: 150:00 and 27:00; I didn't use Manhattan dist initially, lot's of + debugging +- Day 16: 52:00 and 64:00; ARE YOU SAYING I WOULD HAVE MADE THE + LEADERBOARD?!?!?!?!?!?!?! +- Day 17: Second one was fun with having to detect the repetition. +- Day 18: 12:00 and 32:00; really straightforward and of course way too slow. +- Day 19: Slow. (2024-09-13 improved with help from hyper neutrino.) +- Day 20: Struggled way too much. +- Day 21: Straightforward and relatively fast. +- Day 22: Very hard and wasn't able to do hands free. Even the best guys took + over an hour. +- Day 23: Super straightforward, but took me way longer than it should have + because I loose focus and make silly errors. Like back in Middleschool. +- Day 24: Easy. Should have been faster, but no crazy mistakes. Still way too + slow for something easy like this. +- Day 25: Quickly solved via constraint solver. Actual solution much simpler. Don't know + if I would have been able to figure it out. + + +## AoC 2021 + +- Day 1: 4:01 (Haha. Why am I so bad?!?!) +- Day 2: 6:36 (Okay. I might as well stop doing these.) +- Day 3: 23:46 (How long can I take when I try to take long?) +- Day 4: 22:18 (No way. Such stupid bugs.) +- Day 5: 13:30 (Decent, but obviously too slow.) +- Day 6: 16:33 (Right idea quickly but then struggled to implement.) +- Day 7: 6:12 (Decent, but too slow again, obviously. Maybe fast enough for part 1.) +- Day 8: 72:00 (Yeah, that was too much of a struggle.) +- Day 9: 8:07 (37th okay, okay) +- Day 10: 15:50 (I was pretty happy with that but double the 100th place.) +- Day 11: 11:43 (Could have been much faster here.) +- Day 12: 19:11 (Okayish, but of course too slow for leaderboard.) +- Day 13: 16:48 (Should have been way faster.) +- Day 14: 25:52 (Not hard but just too slow.) +- Day 15: 19:17 (Not that bad. Multiplying the thing threw me off.) +- Day 16: 50:01 (Way too slow. Was non-trivial but fun. Much better was feasible.) +- Day 17: 21:59 (Not tricky again but struggling for no reason.) +- Day 18: 162:00 (I couldn't figure out how to solve it as a tree so I did the basic way.) +- Day 19: days (Super hard for me but super fun ultimately once I had the right approach.) +- Day 20: 105:00 (That wasn't easy but was able to solve in one go.) +- Day 21: 37:45 (Wasn't hard but I was just too slow.) +- Day 22: 142:00 (Wonderful problem and hard for me but learned something new for sure.) +- Day 23: 81:38 (Fun but obviously not competitive.) +- Day 24: 232:00 (Super hard for me but I am proud of it.) +- Day 25: 15:43 (That could have been much much faster.) + + +## AoC 2020 + +- Day 1: 2:48 (people weren't able to submit because of a website outage) +- Day 2: 4:47 (no leaderboard, you can tell it's getting faster) +- Day 3: 7:06 (way too slow, lol; time to take it seriously) +- Day 4: 14:30 (yo, I am just too slow) +- Day 5: 11:53 (not competitive) +- Day 6: 4:11 (75th, finally on the leaderboard) +- Day 7: 24:39 (bad) +- Day 8: 6:26 (43th, tied George Hotz :) +- Day 9: 7:37 (choked bad) +- Day 10: 34:27 (so weak) +- Day 11: 21:05 (hmmm, I rally have to analyze why I am so slow) +- Day 12: 21:52 (just slow again for an easy problem) +- Day 13: 18:00 (I don't really understand the CRT to be honest) +- Day 14: 40:26 (Made a bunch of mistakes even misunderstanding Python) +- Day 15: 17:57 (Too slow for an easy one like this) +- Day 16: 33:00 (Not too unhappy really.) +- Day 17: 10:00 (40th) +- Day 18: 80:00 (I am struggling with stuff where parsing is involved) +- Day 19: 78:00 (Should have been faster) +- Day 20: 95:00 (Lot's of code) +- Day 21: 23:02 (Simply to slow) +- Day 22: 45:49 (Simple and too slow) +- Day 23: 105:00 (Sad) +- Day 24: 15:38 (Close to leaderboard) +- Day 25: 14:40 (Way too slow) + + +## AoC 2019 + +- Day 1: 4:25 (copy and paste error, no leaderboard) +- Day 2: 7:07 (19th) +- Day 3: 10:46 (37th) +- Day 4: 8:48 (just too slow, no leaderboard) +- Day 5: 34:24 (that wasn't hard at all) +- Day 6: 23:17 (so slow, no leaderboard) +- Day 7: 72:17 (I found that one challenging, 30:33 would have been required for leaderboard) +- Day 8: 08:55 (54th) +- Day 9: 115:00 (Try to read next time.) +- Day 10: 76:00 (This wasn't easy for me. Fun, though.) +- Day 11: 21:04 (Too slow, but fun.) +- Day 12: days (Took me a while to get the right idea.) +- Day 13: >120:00 (Just struggling so much for some reason.) +- Day 14: >120:00 (Hmm, wasn't that hard either.) +- Day 15: >120:00 (I am really weak at the moment.) +- Day 16: days (Wow. Just too hard for me to solve quickly?) +- Day 17: days (Fun but too tricky for me to be fast.) +- Day 18: days (Slow and slow algorithm.) +- Day 19: 40:00 (Way too slow! Oversight error. Come on.) +- Day 20: days (Not actually that hard but I struggled for no reason.) +- Day 21: days (But it was super fun!) +- Day 22: days (Needed some help...) +- Day 23: 23:13 (Still too slow even though my int computer was in good shape...) +- Day 24: 53:00 (Can I ever even get points at all?) +- Day 25: 70:00 (Well, done at least. Super super fun!) + + +## AoC 2018 + +- Day 1: 1:49 (2nd) +- Day 2: 10:53 +- Day 3: 6:16 (24th) +- Day 4: 25:16 +- Day 5: 17:03 +- Day 6: 1:10:29 +- Day 7: 20:15 +- Day 8: 18:35 +- Day 9: 1:17:52 +- Day 10: 19:14 +- Day 11: 22:52 +- Day 12: 180:00 +- Day 13: 73:09 +- Day 14: 20:48 +- Day 15: 185:11 +- Day 16: 36:10 +- Day 17: 180:00 +- Day 18: 24:04 +- Day 19: days (super fun, but hard for me) +- Day 20: weeks (a cache was all it took - weak) +- Day 21: 28:40 (16th - brute force but still not so bad) +- Day 22: 185:00 (should not have been so slow but was fun) +- Day 23: days +- Day 24: days +- Day 25: 29:20 (slow) + + +## AoC 2017 + +- Day 1: 7:30 +- Day 2: 6:15 +- Day 3: 75:00 hmm should have been way quicker +- Day 4: 3:02 +- Day 5: 6:13 +- Day 6: 8:37 +- Day 7: 19:22 +- Day 8: 8:15 +- Day 9: 6:10 +- Day 10: 55:00 +- Day 11: 66:06 +- Day 12: 6:44 +- Day 13: 120:00 +- Day 14: 17:48 +- Day 15: 11:40 +- Day 16: 13:16 +- Day 17: 55:00 +- Day 18: 23:00 +- Day 19: 45:00 +- Day 20: 9:55 (would have been 10th) +- Day 21: 90:00 +- Day 22: 25:00 +- Day 23: Multiple days... but super fun. +- Day 24: 15:45 (48th) +- Day 25: 41:00 + + +## AoC 2016 + +- Day 1: 29:00 That was emberassingly slow. Out of my rhythm? +- Day 2: 13:24 Getting back into it but still slow af, obviously. +- Day 3: 11:20 Ugly and slow. +- Day 4: 21:05 -__- +- Day 5: 29:35 -___- +- Day 6: 4:20 okay +- Day 7: 31:20 hmm +- Day 8: 14:50 meh +- Day 9: 26:00 okay +- Day 10: 23:07 okay +- Day 11: 75:00 -__- +- Day 12: 10:05 okay +- Day 13: 9:43 okayish +- Day 14: 120:00 struggled with this one (example incorrect?) +- Day 15: Trial and error. Should use CRT instead. +- Day 16: 14:11 +- Day 17: 45:00 didn't follow instructions... focus! +- Day 18: 9:43 +- Day 19: 90:00 that wasn't easy for me +- Day 20: 67:00 +- Day 21: 32:33 +- Day 22: 90:00 +- Day 23: 60:00 +- Day 24: 48:00 +- Day 25: 6:45 + + +## AoC 2015 + +- Day 1: 3:10 +- Day 2: 5:24 :/ +- Day 3: 7:26 ... :/ +- Day 4: 5:11 ... +- Day 5: 14:05 o.O +- Day 6: 15:00 +- Day 7: 17:00 +- Day 8: 14:55 +- Day 9: 13:48 +- Day 10: 70:00 ... slow, but fun +- Day 11: 12:30 +- Day 12: 6:03 +- Day 13: 7:06 (would have been first by a minute, probably 70ish in 2023) +- Day 14: 27:45 ... that was weak, logic error for part 2 :/ +- Day 15: 16:00 I should probably stop brute forcing these optimization problems +- Day 16: 19:00 +- Day 17: 9:05 +- Day 18: 10:39 +- Day 19: Many days... yeah this one took me way too long to figure out +- Day 20: 10:54 +- Day 21: 25:52 cute bug where I didn't consider that no armor is an option +- Day 22: That was bad. Did not know how to choose between dfs/bfs and logic errors. +- Day 23: 10:00 +- Day 24: 20:00 ugly - recursive solution would be more elegant +- Day 25: 9:34 diff --git a/lib.py b/lib.py index ef421f8..475c62b 100644 --- a/lib.py +++ b/lib.py @@ -276,7 +276,7 @@ def extract_year_and_date(scriptname) -> tuple[str, str]: def get_data(filename): path, file = os.path.split(filename) year = path[-4:] - day = file.replace("d", "").replace(".py", "") + day = file.replace("d0", "").replace("d", "").replace(".py", "") txt_file = f"d{day}.txt" if os.path.isfile(txt_file):