This commit is contained in:
daniele 2024-12-01 11:45:34 +01:00
commit 75e0d29f8e
Signed by: fuxino
GPG Key ID: 981A2B2A3BBF5514
3 changed files with 1024 additions and 0 deletions

1000
Day1/day1.txt Normal file

File diff suppressed because it is too large Load Diff

11
Day1/puzzle1.hs Normal file
View File

@ -0,0 +1,11 @@
import Data.List (transpose, sort)
import System.IO
listDistance :: [Int] -> [Int] -> Int
listDistance xs ys = sum $ map abs $ zipWith (-) (sort xs) (sort ys)
main = do
contents <- lines <$> readFile "day1.txt"
let [x, y] = transpose $ map read . words <$> contents
distance = listDistance x y
print distance

13
Day1/puzzle2.hs Normal file
View File

@ -0,0 +1,13 @@
import Data.List (transpose, sort, group)
import System.IO
similarityScore :: [Int] -> [Int] -> Int
similarityScore xs ys = let elemsY = [ (head y, length y) | y <- (group . sort) ys ]
xy = [ (x, snd y) | x <- xs, y <- elemsY, x == fst y ]
in sum [ uncurry (*) x | x <- xy ]
main = do
contents <- lines <$> readFile "day1.txt"
let [x, y] = transpose $ map read . words <$> contents
score = similarityScore x y
print score