adventofcode-2020/day2/part1/main.go

45 lines
691 B
Go

package main
import (
"bufio"
"bytes"
"fmt"
"io/ioutil"
"log"
)
func main() {
f, err := ioutil.ReadFile("input")
if err != nil {
panic(err)
}
reader := bufio.NewReader(bytes.NewReader(f))
var valid int
for {
line, err := reader.ReadString('\n')
if err != nil {
break
}
var pw string
var min, max int
var char rune
n, err := fmt.Sscanf(line, "%d-%d %c: %s", &min, &max, &char, &pw)
if err != nil {
panic(err)
}
if n != 4 {
panic("mismatched Scanf")
}
var count int
for _, currentChar := range pw {
if currentChar == char {
count++
}
}
if count >= min && count <= max {
valid++
}
}
log.Printf("%d valid entries", valid)
}