projects
/
advent-of-code-20.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Done day 22
[advent-of-code-20.git]
/
advent04
/
src
/
advent04.hs
diff --git
a/advent04/src/advent04.hs
b/advent04/src/advent04.hs
index 1960f86e38d4e68d14cc39e3fc3f303726234de6..f272645c0e1f70bbcb85facb65748e239c38f6ba 100644
(file)
--- a/
advent04/src/advent04.hs
+++ b/
advent04/src/advent04.hs
@@
-14,7
+14,7
@@
import qualified Control.Applicative as CA
import qualified Data.Map.Strict as M
import qualified Data.Set as S
import Data.Char
import qualified Data.Map.Strict as M
import qualified Data.Set as S
import Data.Char
-import Data.List
+
--
import Data.List
-- import Text.Megaparsec.Debug
-- import Text.Megaparsec.Debug
@@
-29,7
+29,7
@@
main :: IO ()
main =
do text <- TIO.readFile "data/advent04.txt"
let passports = successfulParse text
main =
do text <- TIO.readFile "data/advent04.txt"
let passports = successfulParse text
-
--
print $ length passports
+ print $ length passports
putStrLn $ runTests
print $ part1 passports
print $ part2 passports
putStrLn $ runTests
print $ part1 passports
print $ part2 passports
@@
-62,12
+62,12
@@
validRanged lower upper value =
where v = read @Int value
validHeight value =
where v = read @Int value
validHeight value =
- if
"cm" `isSuffixOf` value
+ if
u == "cm"
then validRanged 150 193 v
then validRanged 150 193 v
- else if
"in" `isSuffixOf` value
+ else if
u == "in"
then validRanged 59 76 v
else False
then validRanged 59 76 v
else False
- where
v = reverse $ drop 2 $ reverse
value
+ where
(v, u) = span isDigit
value
validHex value = (length value == 7) && (head value == '#') && (all isHexDigit $ tail value)
validHex value = (length value == 7) && (head value == '#') && (all isHexDigit $ tail value)