package main import ( "bufio" "fmt" "os" "strconv" "strings" ) func main() { file, _ := os.Open("test") // file, _ := os.Open("input") defer file.Close() scanner := bufio.NewScanner(file) diskMap := []string{} for scanner.Scan() { line := scanner.Text() diskMap = append(diskMap, strings.Split(line, "")...) } fileID := 0 blockSize := 0 blockSizes := []int{} freeSpace := 0 freeSpaces := []int{} blocks := []string{} for i := range diskMap { if i % 2 == 0 { blockSize, _ = strconv.Atoi(diskMap[i]) blockSizes = append(blockSizes, blockSize) for j:=0;ji;j-- { // if blocks[j] != "." { // blocks[i] = blocks[j] // blocks[j] = "." // break // } // } // } // } // checksum := 0 // for i := range blocks { // blockID, _ := strconv.Atoi(blocks[i]) // checksum = checksum + i * blockID // } // fmt.Println(checksum) fmt.Println(blocks) // moved := []bool{} // for i:=0;i=0;id-- { // for j:=0;j=0;id-- { idPositions := findIDpositions(blocks, id) for i:=0;i