adventofcode-2020/day2/part2/main.go

44 lines
693 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")
}
min--
max--
has1 := rune(pw[min]) == char
has2 := rune(pw[max]) == char
if has1 == has2 { // both false or both true
continue
}
valid++
}
log.Printf("%d valid entries", valid)
}