aoc2022/3-a-v2.hs

20 lines
449 B
Haskell

-- i found out that intersect exists so i redid day 3
import Data.Char
import Data.List
import GHC.Utils.Misc
getCharPriority c
| isLower c = fromEnum c - 96
| isUpper c = fromEnum c - 64 + 26
| otherwise = undefined
findDuplicate s = only $ take half s `intersect` drop half s
where
halfFloat = fromIntegral (length s) / 2
half = round halfFloat
main = interact $
show . sum
. map (getCharPriority . findDuplicate)
. lines