1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- package main
- import (
- "fmt"
- "log"
- "os"
- )
- func getDisk(diskMap []byte) []int {
- var disk []int
- file := true
- var fileID int
- for _, block := range diskMap {
- if block < 48 || block > 57 {
- continue
- }
- number := int(block) - 48
- if file {
- file = false
- for j := 0; j < number; j++ {
- disk = append(disk, fileID)
- }
- fileID++
- } else {
- file = true
- for j := 0; j < number; j++ {
- disk = append(disk, -1)
- }
- }
- }
- return disk
- }
- func part1(diskMap []byte) int {
- disk := getDisk(diskMap)
- fmt.Println(disk)
- return 0
- }
- func main() {
- if len(os.Args) < 2 {
- log.Fatal("You need to specify a file!")
- }
- diskMap, err := os.ReadFile(os.Args[1])
- if err != nil {
- log.Fatal(err)
- }
- fmt.Println(part1(diskMap))
- }
|