look upon my bullshit, ye mighty, and dispair!

This commit is contained in:
Nico 2020-12-09 17:16:13 +00:00
parent aca7a1211a
commit 3098f26734
2 changed files with 1069 additions and 0 deletions

1000
day9/input Normal file

File diff suppressed because it is too large Load Diff

69
day9/main.go Normal file
View File

@ -0,0 +1,69 @@
package main
import (
"fmt"
"io/ioutil"
"strconv"
"strings"
)
func main() {
d, _ := ioutil.ReadFile("input")
strings := strings.Split(string(d), "\n")
bad := 0
var ints []int
done := false
for _, s := range strings {
i, err := strconv.Atoi(s)
if err == nil {
ints = append(ints, i)
}
}
for i, _ := range ints {
if !((i + 26) > len(ints)) {
slice := ints[i : i+25]
sums := make(map[int]struct{})
for _, n := range slice {
for _, n2 := range slice {
if n != n2 {
sums[n+n2] = struct{}{}
}
}
}
bad = ints[i+25]
has := false
for i, _ := range sums {
if bad == i {
has = true
}
}
if has == false {
fmt.Println("Part 1: ", bad)
break
done = true
}
if done == true {
break
}
}
if done == true {
break
}
}
// Part 2: let's just brute force this
l := 2
for {
for x := 0; x < len(ints); x += 1 {
sl := ints[x : x+l]
total := 0
for _, digit := range sl {
total += digit
}
if total == bad {
fmt.Printf("Part 2: %d\n", sl[0]+sl[len(sl)-1:][0])
return
}
}
l++
}
}