diff --git a/2019/day4/day4_withparse.hs b/2019/day4/day4_withparse.hs new file mode 100644 index 0000000..a25ecfd --- /dev/null +++ b/2019/day4/day4_withparse.hs @@ -0,0 +1,17 @@ +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