Didn't need that file
This commit is contained in:
parent
4c8c1f2a9c
commit
91595691b5
@ -1,58 +0,0 @@
|
|||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
|
|
||||||
h "git.bullercodeworks.com/brian/adventofcode/helpers"
|
|
||||||
)
|
|
||||||
|
|
||||||
func main() {
|
|
||||||
inp := h.StdinToStringSlice()
|
|
||||||
build := inp[0]
|
|
||||||
for _, v := range inp[1:] {
|
|
||||||
build = fmt.Sprintf("[%s,%s]", build, v)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Keep on steppin' until no change happens
|
|
||||||
var wrk string
|
|
||||||
var done bool
|
|
||||||
for !done {
|
|
||||||
wrk = step(build)
|
|
||||||
done = wrk == build
|
|
||||||
build = wrk
|
|
||||||
}
|
|
||||||
fmt.Println(wrk)
|
|
||||||
}
|
|
||||||
|
|
||||||
var steps int
|
|
||||||
|
|
||||||
func step(inp string) string {
|
|
||||||
steps++
|
|
||||||
// Find the first number that needs to explode.
|
|
||||||
wrk := explode(inp)
|
|
||||||
if wrk != inp {
|
|
||||||
return wrk
|
|
||||||
}
|
|
||||||
// Nothing exploded, look for a split.
|
|
||||||
return split(inp)
|
|
||||||
}
|
|
||||||
|
|
||||||
func explode(inp string) string {
|
|
||||||
var depth int
|
|
||||||
for i := range inp {
|
|
||||||
if inp[i] == '[' {
|
|
||||||
if depth == 4 {
|
|
||||||
// Explode the leftmost pair from here
|
|
||||||
|
|
||||||
}
|
|
||||||
depth++
|
|
||||||
} else if inp[i] == ']' {
|
|
||||||
depth--
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func split(inp string) string {
|
|
||||||
|
|
||||||
return inp
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user