Advent of Code - 2021 - 7

Haskell

input = [...] -- Fill in with input

diff op m []     = []
diff op m (e:el) = (op (abs $ e - m)) : diff op m el

solve op l = minimum [sum $ diff op c l | c <- [minimum l .. maximum l]]

main = (print $ solve id input)
    >> (print $ solve (\x -> (x + 1) * x `div` 2) input)