chore(day17): log output
All checks were successful
Go Bump / bump (push) Successful in 6s
Go Test / build (push) Successful in 40s

This commit is contained in:
xuu 2024-01-01 12:44:08 -07:00
parent fd85530d88
commit adc01f4df9
Signed by: xuu
GPG Key ID: 8B3B0604F164E04F
2 changed files with 11 additions and 3 deletions

View File

@ -8,7 +8,7 @@ import (
aoc "go.sour.is/advent-of-code" aoc "go.sour.is/advent-of-code"
) )
// var log = aoc.Log var log = aoc.Log
func main() { aoc.MustResult(aoc.Runner(run)) } func main() { aoc.MustResult(aoc.Runner(run)) }
@ -26,10 +26,14 @@ func run(scan *bufio.Scanner) (*result, error) {
text := scan.Text() text := scan.Text()
m = append(m, []rune(text)) m = append(m, []rune(text))
} }
log("start day 17")
result := result{} result := result{}
result.valuePT1 = search(m, 1, 3) result.valuePT1 = search(m, 1, 3)
log("result from part 1 = ", result.valuePT1)
result.valuePT2 = search(m, 4, 10) result.valuePT2 = search(m, 4, 10)
log("result from part 2 = ", result.valuePT2)
return &result, nil return &result, nil
} }
@ -157,7 +161,7 @@ func search(m Map, minSteps, maxSteps int8) int {
g := graph{min: minSteps, max: maxSteps, m: m, target: target} g := graph{min: minSteps, max: maxSteps, m: m, target: target}
cost, path := aoc.FindPath[int16, position](&g, position{loc: start}, position{loc: target}) cost, path := aoc.FindPath[int16, position](&g, position{loc: start}, position{loc: target})
fmt.Println("total map reads = ", g.reads) log("total map reads = ", g.reads)
printGraph(m, path) printGraph(m, path)
return int(cost) return int(cost)

View File

@ -6,6 +6,7 @@ import (
"os" "os"
"path/filepath" "path/filepath"
"strings" "strings"
"time"
) )
func Runner[R any, F func(*bufio.Scanner) (R, error)](run F) (R, error) { func Runner[R any, F func(*bufio.Scanner) (R, error)](run F) (R, error) {
@ -33,7 +34,10 @@ func MustResult[T any](result T, err error) {
Log("result", result) Log("result", result)
} }
func Log(v ...any) { fmt.Fprintln(os.Stderr, v...) } func Log(v ...any) {
fmt.Fprint(os.Stderr, time.Now(), ": ")
fmt.Fprintln(os.Stderr, v...)
}
func Logf(format string, v ...any) { func Logf(format string, v ...any) {
if !strings.HasSuffix(format, "\n") { if !strings.HasSuffix(format, "\n") {
format += "\n" format += "\n"