diff --git a/2020/06/part2_bits.hs b/2020/06/part2_bits.hs new file mode 100755 index 0000000..fac165f --- /dev/null +++ b/2020/06/part2_bits.hs @@ -0,0 +1,17 @@ +#!/usr/bin/env runghc + + +import Day6 +import Data.Bits +import Data.Char + +main = interact (show . solve . lines') + +solve = sum . map countEveryoneYes + +charToBit c = bit $ ord c - ord 'a' + +stringToBits :: String -> Int +stringToBits str = foldl1 (.|.) $ map charToBit str + +countEveryoneYes group = popCount $ foldl1 (.&.) $ map stringToBits group