[hs] Solve 2020_06

This commit is contained in:
Joscha 2020-12-06 10:33:10 +00:00
parent eb8a9795ed
commit 75fa851ff5
2 changed files with 27 additions and 0 deletions

View file

@ -8,6 +8,7 @@ import qualified Aoc.Y2020.D02 as D02
import qualified Aoc.Y2020.D03 as D03 import qualified Aoc.Y2020.D03 as D03
import qualified Aoc.Y2020.D04 as D04 import qualified Aoc.Y2020.D04 as D04
import qualified Aoc.Y2020.D05 as D05 import qualified Aoc.Y2020.D05 as D05
import qualified Aoc.Y2020.D06 as D06
days :: [Day] days :: [Day]
days = days =
@ -16,4 +17,5 @@ days =
, D03.day , D03.day
, D04.day , D04.day
, D05.day , D05.day
, D06.day
] ]

25
hs/src/Aoc/Y2020/D06.hs Normal file
View file

@ -0,0 +1,25 @@
module Aoc.Y2020.D06
( day
) where
import qualified Data.Set as Set
import Aoc.Day
import Aoc.Parse
type Group = [String]
parser :: Parser [Group]
parser = sepBy (endBy1 (some lowerChar) newline) newline
solver :: [Group] -> IO ()
solver groups = do
putStrLn ">> Part 1"
print $ sum $ map (Set.size . foldr1 Set.union . map Set.fromList) groups
putStrLn ""
putStrLn ">> Part 2"
print $ sum $ map (Set.size . foldr1 Set.intersection . map Set.fromList) groups
day :: Day
day = dayParse "2020_06" parser solver