-- Writeup at https://work.njae.me.uk/2022/12/03/advent-of-code-2022-day-3/
-import System.Environment
+import AoC
import Data.Char
import qualified Data.Set as S
import Data.List
print $ part1 rucksacks
print $ part2 rucksacks
-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 :: [Rucksack] -> Int
part1 = sum . fmap (priority . commonItem)
priority :: Char -> Int
priority item
- | item >= 'a' = ord item - ord 'a' + 1
+ | isLower item = ord item - ord 'a' + 1
| otherwise = ord item - ord 'A' + 27