X-Git-Url: https://git.njae.me.uk/?a=blobdiff_plain;f=app%2Fadvent06-old.hs;fp=app%2Fadvent06-old.hs;h=0000000000000000000000000000000000000000;hb=fd498a2713d69a5d55179ff07e58ce296d6fba94;hp=77d40934c1d83388f9558c37d7948f5f7c766d13;hpb=3a26b187d5dc23b05fb73daabe52a92976a7a3c7;p=advent-of-code-16.git diff --git a/app/advent06-old.hs b/app/advent06-old.hs deleted file mode 100644 index 77d4093..0000000 --- a/app/advent06-old.hs +++ /dev/null @@ -1,36 +0,0 @@ -module Main(main) where - -import Data.List (transpose) -import Data.Char (isLetter) -import qualified Data.Map.Lazy as Map - -main :: IO () -main = do - text <- readFile "advent06.txt" - let message = lines text - part1 message - part2 message - -part1 :: [String] -> IO () -part1 message = do - print $ map (fst) $ map (mostCommon) $ map (countedLetters) $ transpose message - -part2 :: [String] -> IO () -part2 message = do - 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] - -mostCommon = Map.foldlWithKey (mostCommonP) ('a', 0) - -mostCommonP (letter0, count0) letter count - | count > count0 = (letter, count) - | otherwise = (letter0, count0) - -leastCommon = Map.foldlWithKey (leastCommonP) ('a', maxBound :: Int) - -leastCommonP (letter0, count0) letter count - | count < count0 = (letter, count) - | otherwise = (letter0, count0) \ No newline at end of file