adventofcode/2022/day06.hs

19 lines
386 B
Haskell

import Data.List (sort, group)
allUniq :: Ord a => [a] -> Bool
allUniq xs = length xs == length (group (sort xs))
findPacket :: Int -> String -> Int
findPacket n s@(x:xs)
| allUniq (take n s) = n
| otherwise = 1 + findPacket n xs
main :: IO ()
main = do
x <- getContents
putStr "part 1: "
print $ findPacket 4 x
putStr "part 2: "
print $ findPacket 14 x