Initial commit

This commit is contained in:
Dimitri Lozeve 2024-11-12 21:43:32 +01:00
commit f242d2b0df
420 changed files with 62521 additions and 0 deletions

18
2017/01/day1.hs Normal file
View file

@ -0,0 +1,18 @@
#!/usr/bin/env stack
-- stack --resolver lts-9.14 script
sumMatchingOffset :: Int -> [Int] -> Int
sumMatchingOffset k xs =
foldr (\x acc -> if fst x == snd x then acc + fst x else acc) 0 xs'
where n = length xs
xs' = zip xs (take n . drop k . cycle $ xs)
toDigits :: String -> [Int]
toDigits = map (read . (:""))
main :: IO ()
main = do
digitsStr <- getLine
let digits = toDigits digitsStr
putStrLn . show $ sumMatchingOffset 1 digits
putStrLn . show $ sumMatchingOffset (length digits `div` 2) digits