AdventOfCode/Haskell/2022/06.hs
2023-10-20 13:52:46 +02:00

28 lines
556 B
Haskell

import Data.List
import Data.Maybe
import Lib
type Input = String
main :: IO ()
main = aoc 2022 6 setup solve1 solve2 ["1", "2", "3", "4", "5"]
solve1 :: Input -> Int
solve1 = solve 4
solve2 :: Input -> Int
solve2 = solve 14
solve :: Int -> Input -> Int
solve n = (+ n) . fromJust . findIndex unique . slices n
setup :: String -> Input
setup = id
slices :: Int -> [a] -> [[a]]
slices n lst
| null $ drop (n - 1) lst = []
| otherwise = take n lst : slices n (tail lst)
unique :: (Eq a) => [a] -> Bool
unique lst = length (nub lst) == length lst