We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent c1b5ce9 commit 760ba1bCopy full SHA for 760ba1b
day11/solution.hs
@@ -0,0 +1,25 @@
1
+import Data.List (transpose)
2
+
3
+countGalaxies = length . filter ('#'==)
4
5
+sumDistances mul galCounts =
6
+ let
7
+ f 0 l r = mul * l * r
8
+ f _ l r = l * r
9
+ left = scanl (+) 0 galCounts
10
+ right = scanr (+) 0 galCounts
11
+ in
12
+ sum $ zipWith3 f galCounts left right
13
14
+main = do
15
+ input <- lines <$> getContents
16
+ let galaxiesByRow = map countGalaxies input
17
+ let galaxiesByCol = map countGalaxies (transpose input)
18
19
+ putStrLn "Part 1:"
20
+ let part1 = sumDistances 2
21
+ print $ part1 galaxiesByRow + part1 galaxiesByCol
22
23
+ putStrLn "Part 2:"
24
+ let part2 = sumDistances 1_000_000
25
+ print $ part2 galaxiesByRow + part2 galaxiesByCol
0 commit comments