Day 1
This commit is contained in:
commit
75e0d29f8e
1000
Day1/day1.txt
Normal file
1000
Day1/day1.txt
Normal file
File diff suppressed because it is too large
Load Diff
11
Day1/puzzle1.hs
Normal file
11
Day1/puzzle1.hs
Normal 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
13
Day1/puzzle2.hs
Normal 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
|
Loading…
x
Reference in New Issue
Block a user