Day 02 Solution

This commit is contained in:
shu 2020-12-02 06:51:03 +01:00
parent 779261f107
commit 3a4709d5b2
2 changed files with 1025 additions and 0 deletions

25
2020/day02/day02.hs Normal file
View File

@ -0,0 +1,25 @@
import Control.Arrow
import Control.Monad
import Data.List.Split
main :: IO ()
main = do
input <- lines <$> readFile "input"
print $ day2a input
print $ day2b input
predicate :: String -> Bool
predicate line = (l>=a) && (l<=b)
where c = head $ words p !! 1
[a,b] = map read $ splitOn "-" $ head $ words p
l = length $ filter (==c) str
[p,str] = splitOn ": " line
day2a = length . filter predicate
day2b = length . filter predicate2
predicate2 :: String -> Bool
predicate2 line = (str!!a==c) /= (str!!b==c)
where c = head $ words p !! 1
[a,b] = map (subtract 1 . read) $ splitOn "-" $ head $ words p
[p,str] = splitOn ": " line

1000
2020/day02/input Normal file

File diff suppressed because it is too large Load Diff