@@ -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