13 lines
455 B
Haskell
13 lines
455 B
Haskell
import Data.List (sort)
|
|
import Data.Set (toAscList, fromList)
|
|
|
|
isPassphraseValid :: [String] -> Bool
|
|
isPassphraseValid ws = sort ws == (toAscList . fromList) ws
|
|
|
|
main :: IO ()
|
|
main = do
|
|
passphrases <- fmap (map words . lines) $ readFile "04.txt"
|
|
let valids = sum $ map (fromEnum . isPassphraseValid) passphrases
|
|
let stillValids = sum $ map (fromEnum . isPassphraseValid . (map sort)) passphrases
|
|
print $ valids
|
|
print $ stillValids |