package main import ( "fmt" "os" "strings" "git.annabunch.es/annabunches/adventofcode/2020/lib/util" ) func countAnswerUnion(input string) int { charMap := make(map[rune]bool) for _, char := range input { if char == ' ' { continue } if _, ok := charMap[char]; !ok { charMap[char] = true } } return len(charMap) } func countAnswerIntersection(input string) int { charMap := make(map[rune]int) answers := strings.Split(strings.Trim(input, " "), " ") for _, answer := range answers { for _, char := range answer { charMap[char]++ } } total := 0 for _, count := range charMap { if count == len(answers) { total++ } } return total } func main() { step := os.Args[1] values := util.InputParserStrings(os.Args[2]) groups := util.SplitOnBlankLine(values) total := 0 for _, line := range groups { if step == "1" { total += countAnswerUnion(line) } if step == "2" { total += countAnswerIntersection(line) } } fmt.Println("Total:", total) }