From b7ea34fd2b2075a13cb2fc158c74dbabfff90e44 Mon Sep 17 00:00:00 2001 From: Heiko Ludwig Date: Tue, 10 Dec 2024 17:41:34 +0100 Subject: [PATCH] incomplete state of day 9 - step 2 --- day_09/program.py | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/day_09/program.py b/day_09/program.py index 7a3ea2e..aae4a10 100755 --- a/day_09/program.py +++ b/day_09/program.py @@ -12,30 +12,44 @@ def get_lines(filename: str) -> list: def get_disk(disk_map: str) -> tuple: disk = [] - free_blocks = deque() full_blocks = deque() + free_blocks = deque() file_id = 0 + head_pos = 0 for pos, count_str in enumerate(disk_map): count = int(count_str) - for i in range(count): - if pos % 2 == 0: + if pos % 2 == 0: + for i in range(count): disk.append(file_id) - else: + full_blocks.append(head_pos) + head_pos += 1 + file_id += 1 + else: + for i in range(count): disk.append(None) + free_blocks.append(head_pos) + head_pos += 1 return disk, free_blocks, full_blocks def print_disk(disk: list) -> None: - pass + for pos in disk: + if pos is None: + print(".", end="") + else: + print(pos, end="") + print() def main(): - # disk_map = get_lines("sample-input.txt")[0] - disk_map = get_lines("sample-input2.txt")[0] + disk_map = get_lines("sample-input.txt")[0] + # disk_map = get_lines("sample-input2.txt")[0] # disk_map = get_lines("input.txt")[0] disk, free_blocks, full_blocks = get_disk(disk_map) - print(disk) - + print_disk(disk) + print(free_blocks) + print(full_blocks) + if __name__ == '__main__': main()