feat: solve part two
This commit is contained in:
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user