package day09 import ( "adventofcode2024/utils" "fmt" ) func Part1(input string) int { disk := []int{} file_id := 0 for i := 0; i <= len(input); i++ { for x := 0; x < utils.MustAtoi(string(input[i])); x++ { disk = append(disk, file_id) } i++ if i < len(input) { for x := 0; x < utils.MustAtoi(string(input[i])); x++ { disk = append(disk, -1) } } file_id++ } printDisk(disk) for i:=len(disk)-1;i>0;i--{ if disk[i] != -1 { id := disk[i] disk[i] = -1 for j:=0;j<=len(disk);j++ { if disk[j] == -1 { disk[j] = id break } } } } printDisk(disk) checksum := 0 for i:=0;i0;i--{ size := 0 if disk[i] != -1 { id := disk[i] for { if i-size > 0 && disk[i-size] == id { size++ } else { break } } free := 0 j := 0 found := false for ;j