diff --git a/2025/day01/main.go b/2025/day01/main.go index a12796a..fbad867 100644 --- a/2025/day01/main.go +++ b/2025/day01/main.go @@ -17,28 +17,43 @@ func main() { // starting position pos := 50 - timesAtZero := 0 + part1 := 0 + part2 := 0 scanner := bufio.NewScanner(inputf) for scanner.Scan() { line := scanner.Text() + turn, err := parseTurn(line) if err != nil { log.Fatalf("failed to parse turn: %v", err) } + prevPos := pos pos = turn.apply(pos) + // part 1 if pos == 0 { - timesAtZero++ + part1++ } + + // part 2 + p := prevPos + + // mirror the value so we can treat this as a right rotation + if turn.dir == left { + p = (100 - prevPos) % 100 + } + + part2 += (p + turn.count) / 100 } if err := scanner.Err(); err != nil { log.Fatalf("scanner error: %v", err) } - fmt.Println(timesAtZero) + fmt.Printf("part1: %d\n", part1) + fmt.Printf("part2: %d\n", part2) } type turn struct {