File tree 1 file changed +9
-10
lines changed
1 file changed +9
-10
lines changed Original file line number Diff line number Diff line change @@ -33,6 +33,7 @@ func day7(file string) (part1, part2 int) {
33
33
for {
34
34
start := n [0 ]
35
35
ispart2 := false
36
+ bad := len (ops ) - 1
36
37
for i := 1 ; i < len (n ); i ++ {
37
38
if ops [i - 1 ] == 0 {
38
39
start += n [i ]
@@ -45,32 +46,30 @@ func day7(file string) (part1, part2 int) {
45
46
}
46
47
start += n [i ]
47
48
}
49
+ if start > testv {
50
+ // Early exit
51
+ bad = i - 1
52
+ break
53
+ }
48
54
}
49
55
if start == testv {
50
- // log.Println(ops, start, testv, part1)
51
-
52
56
if ispart2 {
53
57
part2 += testv
54
58
} else {
55
59
part1 += testv
56
60
}
57
-
58
61
break a
59
62
}
60
63
61
- again := false
62
- for i := 0 ; i < len (ops ); i ++ {
64
+ for i := bad ; i >= 0 ; i -- {
63
65
ops [i ]++
64
66
if ops [i ] == 3 {
65
67
ops [i ] = 0
66
68
} else {
67
- again = true
68
- break
69
+ continue a
69
70
}
70
71
}
71
- if ! again {
72
- break
73
- }
72
+ break
74
73
}
75
74
76
75
// log.Println(testv, n)
You can’t perform that action at this time.
0 commit comments