From b23ea9372ae92b2add77213393041c62cba9a75b Mon Sep 17 00:00:00 2001 From: j-james Date: Mon, 30 Nov 2020 21:17:13 -0800 Subject: Move 2019 Advent of Code work into its own folder --- two.go | 66 ------------------------------------------------------------------ 1 file changed, 66 deletions(-) delete mode 100644 two.go (limited to 'two.go') diff --git a/two.go b/two.go deleted file mode 100644 index 8108c87..0000000 --- a/two.go +++ /dev/null @@ -1,66 +0,0 @@ -package main - -import ( - "fmt" - "io/ioutil" - "os" - "strconv" -) - -func main() { - var slice []int - start, size := 0, 0 - if len(os.Args) < 2 { - panic("runtime error: missing operand") - } - file, err := ioutil.ReadFile(os.Args[1]) - if err != nil { - panic(err) - } - for i := 0; i < len(file); i++ { - if file[i] == ',' || file[i] == '\n' { - arg, err := strconv.Atoi(string(file[start:i])) // i-1?? - if err != nil { - panic(err) - } - slice = append(slice, arg) - start = i + 1 - size++ - } - } - noun, verb := edocpo(slice, 19690720) - slice[1] = 12 - slice[2] = 2 - fmt.Println(opcode(slice)[0]) - fmt.Println(100*noun + verb) -} - -func opcode(slice []int) []int { - for i := 0; i < len(slice); i += 4 { - if slice[i] == 1 { - slice[slice[i+3]] = slice[slice[i+1]] + slice[slice[i+2]] - } else if slice[i] == 2 { - slice[slice[i+3]] = slice[slice[i+1]] * slice[slice[i+2]] - } else if slice[i] == 99 { - return slice - } else { - fmt.Println("Unsupported code", slice[i], "at", i) - os.Exit(0) - } - } - return slice -} - -func edocpo(slice []int, output int) (int, int) { - var ecils []int - for i := 0; i < len(slice); i++ { - for j := 0; j < len(slice); j++ { - ecils = append([]int(nil), slice...) // reset ecils to slice - ecils[1], ecils[2] = i, j - if opcode(ecils)[0] == output { - return i, j - } - } - } - return -1, -1 -} -- cgit v1.2.3-70-g09d2