Rearranged file locations
[advent-of-code-17.git] / src / advent01 / advent01.hs
diff --git a/src/advent01/advent01.hs b/src/advent01/advent01.hs
new file mode 100644 (file)
index 0000000..f5f832f
--- /dev/null
@@ -0,0 +1,29 @@
+{-# LANGUAGE NegativeLiterals #-}
+
+module Main(main) where
+
+import Data.Char (digitToInt)
+
+main :: IO ()
+main = do 
+        digits <- readFile "data/advent01.txt"
+        print $ part1 digits
+        print $ part2 digits
+
+part1 :: String -> Int  
+part1 = solve 1
+
+part2 :: String -> Int  
+part2 digits = solve (length digits `div` 2) digits
+
+-- Verbose version
+-- solve n digits = sum $ map (digitToInt . fst) 
+--                      $ filter (uncurry (==)) 
+--                      $ zip digits 
+--                      $ drop n 
+--                      $ cycle digits
+
+solve :: Int -> String -> Int
+solve n digits = sum $ zipWith (\a b -> if a == b then digitToInt a else 0) digits 
+                     $ drop n 
+                     $ cycle digits