Advent of Code solutions

2021:7

+26
+12
2021/7/p1.hs
··· 1 + import Text.Parsec 2 + 3 + crabs = (read <$> many1 digit) `sepBy` char ',' 4 + 5 + answer contents = minimum $ fmap fuel [lo..hi] 6 + where 7 + Right input = parse crabs "" contents 8 + lo = minimum input 9 + hi = maximum input 10 + fuel n = sum $ fmap (abs . (n -)) input 11 + 12 + main = getContents >>= print . answer
+14
2021/7/p2.hs
··· 1 + import Text.Parsec 2 + 3 + crabs = (read <$> many1 digit) `sepBy` char ',' 4 + 5 + total n = (n * (n + 1)) `div` 2 6 + 7 + answer contents = minimum $ fmap fuel [lo..hi] 8 + where 9 + Right input = parse crabs "" contents 10 + lo = minimum input 11 + hi = maximum input 12 + fuel n = sum $ fmap (total . abs . (n -)) input 13 + 14 + main = getContents >>= print . answer