From 0ba29a4e75fa9ade4db915a181ed03b42a90b346 Mon Sep 17 00:00:00 2001 From: Anna Wiggins Date: Tue, 15 Dec 2020 05:25:21 +0000 Subject: [PATCH] Day 15 solution. --- 2020/day15.go | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 2020/day15.go diff --git a/2020/day15.go b/2020/day15.go new file mode 100644 index 0000000..7d17dbb --- /dev/null +++ b/2020/day15.go @@ -0,0 +1,38 @@ +package main + +import ( + "fmt" + "os" +) + +func main() { + step := os.Args[1] + indexMap := make(map[int]int) + indexMap[0] = 0 + indexMap[14] = 1 + indexMap[1] = 2 + indexMap[3] = 3 + indexMap[7] = 4 + + last := 9 + loops := 0 + switch step { + case "1": + loops = 2020 + case "2": + loops = 30000000 + } + + for i := 5; i < loops-1; i++ { + if x, ok := indexMap[last]; ok { + indexMap[last] = i + // fmt.Printf("%d was last seen %d ago\n", last, i-x) + last = i - x + } else { + indexMap[last] = i + // fmt.Printf("%d has not been seen before\n", last) + last = 0 + } + } + fmt.Println(last) +}