DEV Community

Cover image for Advent of Code '24 - Day9: Disk Fragmenter (Python)
Grant Riordan
Grant Riordan

Posted on

3

Advent of Code '24 - Day9: Disk Fragmenter (Python)

Advent of Code Day 9: Disk Fragmenter

Today's solution was only done in Python today, as tbh, i'm finding it hard to find the time to write in both Python and C# as well as a write-up, so opting to do one of the other going forward.

Part 1

This was fairly straight forward, the ask was to convert the input to id's, and empty spaces , where the odd indexes were id's and evens were empty spaces (.) and repeat x times correlating to the number in the input e.g;

1234 =>

1 => 1x id --> 0
2 => 2x empty --> ..
3 => 3x id --> 111
4 => 4x empy --> ....

Overall line => 0..111....

We then were asked to move the right most element to the left most empty space.

I.e move 1 -> the first (.), we do this using two loops, one going from rear -> front, and the other front -> rear.

When we find an Id, we move from the front to find the first empty space, and switch these points, and continue until all numbers from the right are moved to left empty spaces.

As long as the right index, is always bigger than the left index, or they haven't met in the middle keep going.

Part 2

Now instead of just finding the left most empty space, we have to try and find a left most empty space, that can fit the whole of the file (id) e.g if we have a fileId of 9999 we'd need 4 empty spaces together, if it won't we move it the next empty space that will. If no empty spaces we move to the next fileId.

[Spoilers] -> Solutions can be found at GitHub

As always you can reach out and follow on Twitter

Neon image

Build better on Postgres with AI-Assisted Development Practices

Compare top AI coding tools like Cursor and Windsurf with Neon's database integration. Generate synthetic data and manage databases with natural language.

Read more →

Top comments (0)

Quickstart image

Django MongoDB Backend Quickstart! A Step-by-Step Tutorial

Get up and running with the new Django MongoDB Backend Python library! This tutorial covers creating a Django application, connecting it to MongoDB Atlas, performing CRUD operations, and configuring the Django admin for MongoDB.

Watch full video →

👋 Kindness is contagious

Engage with a wealth of insights in this thoughtful article, cherished by the supportive DEV Community. Coders of every background are encouraged to bring their perspectives and bolster our collective wisdom.

A sincere “thank you” often brightens someone’s day—share yours in the comments below!

On DEV, the act of sharing knowledge eases our journey and forges stronger community ties. Found value in this? A quick thank-you to the author can make a world of difference.

Okay