this repo has no description
1module AocDay06
2 ( codeFromLines
3 , codeFromLines2
4 , mostOccurring
5 , leastOccurring
6 ) where
7
8import Data.List (transpose, sortBy, minimumBy, maximumBy)
9import Data.List.Unique as Unique
10import Data.Function
11
12
13codeFromLines :: [String] -> String
14codeFromLines strs = map mostOccurring (transpose strs)
15
16
17codeFromLines2 :: [String] -> String
18codeFromLines2 strs = map leastOccurring (transpose strs)
19
20
21mostOccurring :: String -> Char
22mostOccurring = fst . minimumBy (flip compare `on` snd) . Unique.count
23
24
25leastOccurring :: String -> Char
26leastOccurring = fst . maximumBy (flip compare `on` snd) . Unique.count