projects
/
advent-of-code-23.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Sped up day 21 by only simulating the boundary
[advent-of-code-23.git]
/
advent07
/
Main.hs
diff --git
a/advent07/Main.hs
b/advent07/Main.hs
index b839511444c0d4eb4f8102b5b3a20596a2e6eb17..8f3a42445d74b6ffa4596856b47b815a645d7fb6 100644
(file)
--- a/
advent07/Main.hs
+++ b/
advent07/Main.hs
@@
-40,10
+40,7
@@
enJoker (Hand cards bid) = Hand jCards bid
where jCards = replace Jack Joker cards
replace :: Eq a => a -> a -> [a] -> [a]
where jCards = replace Jack Joker cards
replace :: Eq a => a -> a -> [a] -> [a]
-replace _ _ [] = []
-replace f t (x:xs)
- | x == f = t : replace f t xs
- | otherwise = x : replace f t xs
+replace f t = fmap (\x -> if x == f then t else x)
classify :: Hand -> ClassifiedHand
classify (Hand cards bid)
classify :: Hand -> ClassifiedHand
classify (Hand cards bid)
@@
-98,7
+95,7
@@
handP :: Parser Hand
cardP :: Parser Card
handsP = handP `sepBy` endOfLine
cardP :: Parser Card
handsP = handP `sepBy` endOfLine
-handP = Hand <$>
((many1 cardP) <* space)
<*> decimal
+handP = Hand <$>
many1 cardP <* space
<*> decimal
cardP = (Two <$ "2") <|> (Three <$ "3") <|> (Four <$ "4") <|>
(Five <$ "5") <|> (Six <$ "6") <|> (Seven <$ "7") <|>
cardP = (Two <$ "2") <|> (Three <$ "3") <|> (Four <$ "4") <|>
(Five <$ "5") <|> (Six <$ "6") <|> (Seven <$ "7") <|>