import Data.List import Data.List.Split main = do print (day4 p $ range "130254-678275") print (day4 p' $ range "130254-678275") range :: String -> [Int] range input = [a..b] where [a,b] = map read $ splitOn "-" input day4 p = sum . map (fromEnum . p . show) p x | sort x /= x = False | nub x == x = False | otherwise = True p' x = 2 `elem` (map length $ group x) && p x