package main import ( "AOC2021/src/helper" "fmt" "os" "strconv" "strings" ) func main() { args := os.Args[1:] input, err := helper.GetInput(args[0]) if err != nil { fmt.Println(err) } //part1(input) part2(input) } func part2(input []string) { forward := 0 depth := 0 aim := 0 for _, line := range input { seperatedLine := strings.Fields(line) movement := seperatedLine[0] distance, _ := strconv.Atoi(seperatedLine[1]) switch movement { case "forward": forward += distance depth += aim * distance case "down": aim += distance case "up": aim -= distance } } fmt.Printf("With a forward of %d and depth of %d I get the value %d \r\n", forward, depth, (forward * depth)) } func part1(input []string) { forward := 0 depth := 0 for _, line := range input { seperatedLine := strings.Fields(line) movement := seperatedLine[0] distance, _ := strconv.Atoi(seperatedLine[1]) switch movement { case "forward": forward += distance case "down": depth += distance case "up": depth -= distance } } fmt.Printf("With a forward of %d and depth of %d I get the value %d \r\n", forward, depth, (forward * depth)) }