projects
/
advent-of-code-22.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Tidying
[advent-of-code-22.git]
/
advent04
/
Main.hs
diff --git
a/advent04/Main.hs
b/advent04/Main.hs
index 456b157c6af47a8eda8d32d7b6bbace22c1b2540..537d7c6754a8c0a4c5fc839d4c331735030f8f38 100644
(file)
--- a/
advent04/Main.hs
+++ b/
advent04/Main.hs
@@
-1,6
+1,6
@@
-- Writeup at https://work.njae.me.uk/2022/12/04/advent-of-code-2022-day-4/
-- Writeup at https://work.njae.me.uk/2022/12/04/advent-of-code-2022-day-4/
-import
System.Environment
+import
AoC
import Data.Text (Text)
import qualified Data.Text.IO as TIO
import Data.Attoparsec.Text hiding (Result)
import Data.Text (Text)
import qualified Data.Text.IO as TIO
import Data.Attoparsec.Text hiding (Result)
@@
-17,16
+17,6
@@
main =
print $ part1 pairs
print $ part2 pairs
print $ part1 pairs
print $ part2 pairs
-getDataFileName :: IO String
-getDataFileName =
- do args <- getArgs
- progName <- getProgName
- let baseDataName = if null args
- then progName
- else head args
- let dataFileName = "data/" ++ baseDataName ++ ".txt"
- return dataFileName
-
part1 :: [Pair] -> Int
part1 = length . (filter hasContainment)
part1 :: [Pair] -> Int
part1 = length . (filter hasContainment)
@@
-40,13
+30,14
@@
hasContainment (assignment1, assignment2) =
disjoint (assignment1, assignment2) =
(assignment1 `before` assignment2) || (assignment2 `before` assignment1)
disjoint (assignment1, assignment2) =
(assignment1 `before` assignment2) || (assignment2 `before` assignment1)
-overlaps
pair = not $ disjoint pair
+overlaps
= not . disjoint
contains, before :: Assignment -> Assignment -> Bool
contains (Assignment lower1 upper1) (Assignment lower2 upper2) =
(lower1 <= lower2) && (upper1 >= upper2)
contains, before :: Assignment -> Assignment -> Bool
contains (Assignment lower1 upper1) (Assignment lower2 upper2) =
(lower1 <= lower2) && (upper1 >= upper2)
-before (Assignment _lower1 upper1) (Assignment lower2 _upper2) = (upper1 < lower2)
+before (Assignment _lower1 upper1) (Assignment lower2 _upper2) =
+ (upper1 < lower2)
-- Parse the input file
-- Parse the input file