X-Git-Url: https://git.njae.me.uk/?a=blobdiff_plain;f=app%2Fadvent16.hs;fp=app%2Fadvent16.hs;h=0000000000000000000000000000000000000000;hb=fd498a2713d69a5d55179ff07e58ce296d6fba94;hp=88b8b594f004d6f98e764a37505675289bed4a25;hpb=3a26b187d5dc23b05fb73daabe52a92976a7a3c7;p=advent-of-code-16.git diff --git a/app/advent16.hs b/app/advent16.hs deleted file mode 100644 index 88b8b59..0000000 --- a/app/advent16.hs +++ /dev/null @@ -1,42 +0,0 @@ -module Main(main) where - -import Data.List (nub) - -input = "11100010111110100" -disk1length = 272 -disk2length = 35651584 - --- input = "10000" --- disk1length = 20 - -main :: IO () -main = do - part1 - part2 - -part1 :: IO () -part1 = putStrLn $ checksum $ take disk1length $ expand disk1length input - -part2 :: IO () -part2 = putStrLn $ checksum $ take disk2length $ expand disk2length input - - -expand :: Int -> String -> String -expand len a - | length a >= len = a - | otherwise = expand len $ a ++ "0" ++ b - where b = map (invert) $ reverse a - invert '0' = '1' - invert '1' = '0' - -checksum :: String -> String -checksum digits - | odd $ length digits = digits - | otherwise = checksum $ map (checksumPair) $ pairs digits - where checksumPair p = if (length $ nub p) == 1 then '1' else '0' - - -pairs :: [a] -> [[a]] -pairs [] = [] -pairs xs = [p] ++ (pairs ys) - where (p, ys) = splitAt 2 xs