package main import ( "bufio" "errors" "log" "os" "strconv" "strings" ) func main() { file, err := os.Open("input.txt") if err != nil { log.Fatal(err) } defer file.Close() scanner := bufio.NewScanner(file) if !scanner.Scan() { log.Fatalln("Problem while read line.") return } stringarr := strings.Split(scanner.Text(), ",") var t2 = []int{} for _, i := range stringarr { j, err := strconv.Atoi(i) if err != nil { panic(err) } t2 = append(t2, j) } // ========= Finish now, we can solve the task ====== t2[1] = 12 t2[2] = 2 ParseArray(t2) log.Println("Part1: " + strconv.Itoa(t2[0])) } func ParseArray(list []int) error { for i := 0; i < len(list); i += 4 { cmd := list[i] if cmd == 99 { return nil } num1 := list[list[i+1]] num2 := list[list[i+2]] sum := 0 if cmd == 1 { sum = num1 + num2 } else if cmd == 2 { sum = num1 * num2 } else { return errors.New("Wrong Command (" + strconv.Itoa(cmd) + ") at position " + strconv.Itoa(i)) } list[list[i+3]] = sum } return nil }