Add day 1 in Haskell

This commit is contained in:
kageru 2019-12-01 10:01:47 +01:00
parent 9b19387e42
commit c158f59eff
Signed by: kageru
GPG Key ID: 8282A2BEA4ADA3D2

17
2019/1/day1.hs Normal file
View File

@ -0,0 +1,17 @@
import System.IO
import Text.Printf
main :: IO ()
main = do
content <- getContents
let input = map read (lines content)
printf "Part 1: %d\n" (fuel input)
printf "Part 2: %d\n" (fuelrec input)
fuel :: [Int] -> Int
fuel xs = sum (map (subtract 2 . (`div` 3)) xs)
fuelrec :: [Int] -> Int
fuelrec xs = sum (map f xs) - sum xs where
f x | x > 0 = x + f ((subtract 2 . (`div` 3)) x)
| otherwise = 0