X-Git-Url: https://git.njae.me.uk/?a=blobdiff_plain;f=advent05%2FMain.hs;h=0b60f36fa0383dd000f6cadb345dba9a2976d915;hb=0aa43bda9bede3f58f97bc6b2996abd5dbbc97be;hp=727822d430fb7f17d14aac9e4f40d526a7ddfe04;hpb=1ade0f990fca1907a65253cb0fe1c38a9bc1d3af;p=advent-of-code-22.git diff --git a/advent05/Main.hs b/advent05/Main.hs index 727822d..0b60f36 100644 --- a/advent05/Main.hs +++ b/advent05/Main.hs @@ -1,6 +1,6 @@ -- Writeup at https://work.njae.me.uk/2022/12/04/advent-of-code-2022-day-4/ -import System.Environment +import AoC import Data.Text (Text) import qualified Data.Text.IO as TIO import Data.Attoparsec.Text hiding (take) @@ -26,18 +26,6 @@ main = putStrLn $ part1 wharf moves putStrLn $ part2 wharf moves - -getDataFileName :: IO String -getDataFileName = - do args <- getArgs - progName <- getProgName - let baseDataName = if null args - then progName - else head args - let dataFileName = "data/" ++ baseDataName ++ ".txt" - return dataFileName - - part1 :: Wharf -> [Move] -> String part1 wharf moves = showTops $ applyMoves1 wharf moves @@ -52,9 +40,7 @@ extractName (Crate c) = c makeWharf :: [[Maybe Crate]] -> [Int] -> Wharf makeWharf wharfLines colNames = M.fromList $ zip colNames wharfCols - where wharfCols = fmap (fmap fromJust) - $ fmap (dropWhile isNothing) - $ transpose wharfLines + where wharfCols = fmap catMaybes $ transpose wharfLines applyMoves1 :: Wharf -> [Move] -> Wharf applyMoves1 wharf moves = foldl' applyMove1 wharf moves