Day 9: Disk Fragmenter
Megathread guidelines
- Keep top level comments as only solutions, if you want to say something other than a solution put it in a new post. (replies to comments can be whatever)
- You can send code in code blocks by using three backticks, the code, and then three backticks or use something such as https://topaz.github.io/paste/ if you prefer sending it through a URL
FAQ
- What is this?: Here is a post with a large amount of details: https://programming.dev/post/6637268
- Where do I participate?: https://adventofcode.com/
- Is there a leaderboard for the community?: We have a programming.dev leaderboard with the info on how to join in this post: https://programming.dev/post/6631465
ah well, I tried switching to python’s set()
but it was slow because of the fact it is unordered. I would need to use a min()
to find the minimum index number, which was slow af. indexing might be fast but pop(0)
on a list is also just as fast.(switching to deque had no speed up either) The list operations I am using are mostly O(1) time
If I comment out this which does the adding:
# adds checksums
part2_data = [y for x in part2_data for y in x]
part2 = 0
for i,x in enumerate(part2_data):
if x != '.':
part2 += i*x
so that it isolates the checksum part. it is still only 80-100ms. so the checksum part had no noticeable slowdown, even if I were to do the check sum at the same time I do the sorting it would not lower execution time.