X-Git-Url: https://git.njae.me.uk/?a=blobdiff_plain;f=app%2Fadvent03.hs;fp=app%2Fadvent03.hs;h=0000000000000000000000000000000000000000;hb=fd498a2713d69a5d55179ff07e58ce296d6fba94;hp=ef40bcc94a947cc9ce5d2d48556e044bbbe7cfbc;hpb=3a26b187d5dc23b05fb73daabe52a92976a7a3c7;p=advent-of-code-16.git diff --git a/app/advent03.hs b/app/advent03.hs deleted file mode 100644 index ef40bcc..0000000 --- a/app/advent03.hs +++ /dev/null @@ -1,33 +0,0 @@ -module Main(main) where - -import Data.List (transpose, sort) -import Data.List.Split (splitOn, chunksOf) - -type Triple = [Integer] - -main :: IO () -main = do - instrText <- readFile "data/advent03.txt" - let triangles = map (parseLine) $ lines instrText - part1 triangles - part2 triangles - - -part1 :: [Triple] -> IO () -part1 triangles = do - print $ length $ filter (validTriangle) triangles - -part2 :: [Triple] -> IO () -part2 triangles = do - print $ length $ filter (validTriangle) $ byColumns triangles - - -parseLine :: String -> Triple -parseLine = map (read) . filter (not . null) . splitOn " " - -validTriangle :: Triple -> Bool -validTriangle triple = sortedTriple!!0 + sortedTriple!!1 > sortedTriple!!2 - where sortedTriple = sort triple - -byColumns :: [[Integer]] -> [Triple] -byColumns = chunksOf 3 . concat . transpose