module Main(main) where
-import Data.List (last, intersperse, sortBy, intercalate, isInfixOf, transpose)
-import Data.List.Split (splitOn)
-import Data.Char (isLetter, ord, chr)
+import Data.List (transpose)
+import Data.Char (isLetter)
import qualified Data.Map.Lazy as Map
-
-input = "cxdnnyjw"
-
main :: IO ()
main = do
text <- readFile "advent06.txt"
part1 message
part2 message
-
part1 :: [String] -> IO ()
part1 message = do
print $ map (fst) $ map (mostCommon) $ map (countedLetters) $ transpose message
print $ map (fst) $ map (leastCommon) $ map (countedLetters) $ transpose message
-
countedLetters :: String -> Map.Map Char Int
countedLetters name = Map.fromListWith (+) [(c, 1) | c <- filter (isLetter) name]