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
This part looks suspicious:
for f in range(len(free) - 2): disk_map[free[f]] = disk_map.pop(max(disk_map.keys()))
You’re always moving exactly
len(free) - 2
blocks, but that doesn’t sound to be correct in all cases. If you consider the following input:191
, you only need to move one block, and not seven.I’m always moving one (file)part at a time, so that should be fine… I think.