X-Git-Url: https://git.njae.me.uk/?a=blobdiff_plain;f=adventofcode16%2Fapp%2Fadvent06.hs;fp=adventofcode16%2Fapp%2Fadvent06.hs;h=96c4aa2ae7f14f6ff067579d8f3f7da0124007f6;hb=fd498a2713d69a5d55179ff07e58ce296d6fba94;hp=0000000000000000000000000000000000000000;hpb=3a26b187d5dc23b05fb73daabe52a92976a7a3c7;p=advent-of-code-16.git diff --git a/adventofcode16/app/advent06.hs b/adventofcode16/app/advent06.hs new file mode 100644 index 0000000..96c4aa2 --- /dev/null +++ b/adventofcode16/app/advent06.hs @@ -0,0 +1,22 @@ +module Main(main) where + +import Data.List (transpose, maximum, minimum, sort, group) +import Data.Tuple (swap) + +main :: IO () +main = do + text <- readFile "data/advent06.txt" + let message = lines text + part1 message + part2 message + +part1 :: [String] -> IO () +part1 message = do + putStrLn $ map (snd . maximum . counts) $ transpose message + +part2 :: [String] -> IO () +part2 message = do + putStrLn $ map (snd . minimum . counts) $ transpose message + +counts :: (Eq a, Ord a) => [a] -> [(Int, a)] +counts = map (\g -> (length g, head g)) . group . sort \ No newline at end of file