From 6574f2fbe3ce537e01de813b4ac1d66f42dc78f6 Mon Sep 17 00:00:00 2001 From: Tom Smeding Date: Thu, 3 Dec 2020 14:41:13 +0100 Subject: Day 3 --- 2020/3.hs | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 2020/3.hs (limited to '2020/3.hs') 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)])) -- cgit v1.2.3-54-g00ecf