AoC/2019/day4/day4.hs
2019-12-04 08:16:15 +01:00

26 lines
533 B
Haskell

import Data.List
main = do
let bottom = 130254
let top = 678275
print (day4a bottom top)
print (day4b bottom top)
day4a bottom top = dumbbrute bottom top p 0
day4b bottom top = dumbbrute bottom top p' 0
dumbbrute x y p acc
| x'<=y = dumbbrute x' y p (if p $ show x then acc+1 else acc)
| otherwise = acc
where x' = succ x
p x
| sort x /= x = False
| nub x == x = False
| otherwise = True
p' x
| sort x /= x = False
| 2 `elem` (map length $ group x) = True
| otherwise = False