@@ -19,14 +19,14 @@ library libaoc
|
|||||||
build-depends: containers
|
build-depends: containers
|
||||||
exposed-modules: AoC
|
exposed-modules: AoC
|
||||||
|
|
||||||
executable p1
|
executable day1
|
||||||
import: common
|
import: common
|
||||||
hs-source-dirs: src
|
hs-source-dirs: src
|
||||||
main-is: P1.hs
|
main-is: Day1.hs
|
||||||
build-depends: libaoc
|
build-depends: libaoc
|
||||||
|
|
||||||
executable p2
|
executable day2
|
||||||
import: common
|
import: common
|
||||||
hs-source-dirs: src
|
hs-source-dirs: src
|
||||||
main-is: P2.hs
|
main-is: Day2.hs
|
||||||
build-depends: libaoc
|
build-depends: libaoc
|
||||||
|
@@ -1,9 +1,8 @@
|
|||||||
module Main where
|
module Main where
|
||||||
|
|
||||||
import qualified AoC as A (count, extract)
|
import qualified AoC as A (count, extract)
|
||||||
import Control.Monad (void)
|
|
||||||
import Data.List (sort)
|
import Data.List (sort)
|
||||||
import Text.Parsec (digit, eof, many1, newline, parse, sepEndBy1, space, try, (<|>))
|
import Text.Parsec (digit, many1, newline, parse, sepEndBy1, space)
|
||||||
import Text.Parsec.String (Parser)
|
import Text.Parsec.String (Parser)
|
||||||
|
|
||||||
parseLists :: Parser ([Int], [Int])
|
parseLists :: Parser ([Int], [Int])
|
||||||
@@ -28,7 +27,7 @@ part2 xs ys = sum $ map (\x -> x * A.count x ys) xs
|
|||||||
main :: IO ()
|
main :: IO ()
|
||||||
main =
|
main =
|
||||||
do
|
do
|
||||||
raw <- readFile "./inputs/p1.in"
|
raw <- readFile "./inputs/day1.in"
|
||||||
-- parse the input
|
-- parse the input
|
||||||
let (xs', ys') = A.extract $ parse parseLists "" raw
|
let (xs', ys') = A.extract $ parse parseLists "" raw
|
||||||
-- sort the lists
|
-- sort the lists
|
@@ -29,7 +29,7 @@ part2 = length . filter dampSafe
|
|||||||
main :: IO ()
|
main :: IO ()
|
||||||
main =
|
main =
|
||||||
do
|
do
|
||||||
raw <- readFile "./inputs/p2.in"
|
raw <- readFile "./inputs/day2.in"
|
||||||
-- parse the input
|
-- parse the input
|
||||||
let reports = A.extract $ parse parseReports "" raw
|
let reports = A.extract $ parse parseReports "" raw
|
||||||
putStr "Part 1: " >> print (part1 reports)
|
putStr "Part 1: " >> print (part1 reports)
|
Reference in New Issue
Block a user