advent-of-code/2021/day-04/part_one.go

43 lines
770 B
Go

package main
import (
"os"
"fmt"
. "aoc/aoc"
)
func find_winner(numbers []int, boards []Board) (*Board, int) {
for _, number := range numbers {
for b, _ := range boards {
if MarkBoard(&boards[b], number) {
return &boards[b], number
}
}
}
return nil, -1
}
func main() {
path := os.Args[1]
numbers, boards, err := ReadFile(path)
if err != nil {
os.Exit(1)
}
board, last_number := find_winner(numbers, boards)
var unmarked_sum = 0
for _, row := range board.Fields {
for _, col := range row {
if !col.Marked {
unmarked_sum += col.Value;
}
}
}
fmt.Println(unmarked_sum * last_number)
}