diff options
author | Tom Smeding <tom.smeding@gmail.com> | 2020-12-03 14:41:13 +0100 |
---|---|---|
committer | Tom Smeding <tom.smeding@gmail.com> | 2020-12-03 14:41:13 +0100 |
commit | 6574f2fbe3ce537e01de813b4ac1d66f42dc78f6 (patch) | |
tree | 1793090973394bf013cebc4a4bb6219eae19d3a6 /2020/3.hs | |
parent | a9983e2f6ce4f444b5adeeb909ecc70bc568c3f4 (diff) |
Day 3
Diffstat (limited to '2020/3.hs')
-rw-r--r-- | 2020/3.hs | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/2020/3.hs b/2020/3.hs new file mode 100644 index 0000000..20fe0ec --- /dev/null +++ b/2020/3.hs @@ -0,0 +1,25 @@ +module Main where + +import qualified Data.Array as A + +import Input + + +main :: IO () +main = do + input <- getInput 3 + let height = length input + width = length (head input) + + let grid = A.array ((0, 0), (height - 1, width - 1)) + [((y, x), fromEnum (c == '#')) + | (y, row) <- zip [0..] input + , (x, c) <- zip [0..] row] + + countSlope hor ver = + let nsteps = height `div` ver + in sum [grid A.! (ver * i, hor * i `mod` width) | i <- [0..nsteps-1]] + + print (countSlope 3 1) + + print (product (map (uncurry countSlope) [(1,1), (3,1), (5,1), (7,1), (1,2)])) |