diff --git a/2020/day10/day10.hs b/2020/day10/day10.hs index f78f2cd..a31aaaf 100644 --- a/2020/day10/day10.hs +++ b/2020/day10/day10.hs @@ -9,11 +9,9 @@ main = do (product . map (arrangements . sum) . filter (elem 1) . group . jolts) input arrangements :: Int -> Int -arrangements n = - length $ - filter (== n) $ map sum $ nub $ map (filter (/= 0)) $ replicateM n [0 .. 3] +arrangements = + (\x -> length . filter (== x)) <*> + (map sum . nub . map (filter (/= 0)) . flip replicateM [0 .. 3]) jolts :: [Int] -> [Int] -jolts = - ap (zipWith subtract) tail . - ap (++) (flip (:) [] . (+ 3) . last) . (:) 0 . sort +jolts = ap (zipWith subtract) tail . (\x -> 0 : x ++ [last x + 3]) . sort