-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathstar2.go
59 lines (55 loc) · 1.31 KB
/
star2.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package main
import (
"fmt"
"strconv"
"aoc2020/getpuzzle"
)
func invalidInt (ints []int, num int) bool {
for i, numOne := range ints {
for _, numTwo := range ints[i+1:] {
if numOne + numTwo == num {
return false
}
}
}
return true
}
func main() {
intStrings := getpuzzle.GetPuzzleFile("puzzle.txt")
var ints []int
for _, num := range intStrings {
i, _ := strconv.Atoi(num)
ints = append(ints, i)
}
preambleLen := 25
invalidNum := 0
for i := preambleLen; i < len(ints); i++ {
if invalidInt(ints[i-preambleLen:i], ints[i]) {
invalidNum = ints[i]
break
}
}
for i :=0; i < len(ints); i++ {
for j := i+2; j < len(ints); j++ {
min := 0
max := 0
total := 0
for k, n := range ints[i:j] {
if k == 0 {
min = n
max = n
} else {
if n < min {
min = n
} else if n > max {
max = n
}
}
total += n
}
if invalidNum == total {
fmt.Println(min + max)
}
}
}
}