feat: solve part two

This commit is contained in:
2025-12-06 23:43:01 +01:00
parent 7de5fa7794
commit b26f1531f5

View File

@@ -113,9 +113,9 @@ func parseNumbers(line string) []int {
return numbers return numbers
} }
func PartOne(lines []string) int { func PartOne(data []string) int {
numbers := parseNumbers(lines[0]) numbers := parseNumbers(data[0])
boards := parseBoards(lines[1:]) boards := parseBoards(data[1:])
for _, number := range numbers { for _, number := range numbers {
for idx := range boards { for idx := range boards {
@@ -128,6 +128,28 @@ func PartOne(lines []string) int {
return 0 return 0
} }
func PartTwo(lines []string) int { func PartTwo(data []string) int {
numbers := parseNumbers(data[0])
boards := parseBoards(data[1:])
wonCount := 0
totalBoards := len(boards)
var lastWinner *board
var lastNumber int
for _, number := range numbers {
for idx := range boards {
if boards[idx].mark(number) {
wonCount++
lastWinner = &boards[idx]
lastNumber = number
if wonCount == totalBoards {
return lastWinner.sumUnmarked() * lastNumber
}
}
}
}
return 0 return 0
} }