Skip to content

Commit 760ba1b

Browse files
committed
alternative day 11 solution in Haskell
1 parent c1b5ce9 commit 760ba1b

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

day11/solution.hs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)