소스 검색

day 6 done woooo

master
Thorn Avery 3 년 전
부모
커밋
52f550dc86
2개의 변경된 파일2110개의 추가작업 그리고 0개의 파일을 삭제
  1. +25
    -0
      day6.hs
  2. +2085
    -0
      day6.txt

+ 25
- 0
day6.hs 파일 보기

@@ -0,0 +1,25 @@
import Data.List (nub, sort)

main :: IO ()
main = do
raw <- readFile "day6.txt"
let ls = map concat $ split "" $ lines raw
ms = split "" $ lines raw
ansA = sum $ map (length . nub) ls
ansB = sum $ map (length . (foldr match ['a'..'z'])) ms
in do
putStrLn $ "day6a: " ++ (show ansA)
putStrLn $ "day6b: " ++ (show ansB)

match :: (Ord a, Eq a) => [a] -> [a] -> [a]
match as bs = (sort . nub) $ filter (`elem` bs) as

split :: Eq a => a -> [a] -> [[a]]
split _ [] = []
split v as = split' v as [] []

split' :: Eq a => a -> [a] -> [a] -> [[a]] -> [[a]]
split' _ [] a as = as ++ [a]
split' v (b:bs) a as
| b == v = split' v bs [] (as ++ [a])
| otherwise = split' v bs (a ++ [b]) as

+ 2085
- 0
day6.txt
파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
파일 보기


불러오는 중...
취소
저장