solve: day 6
- solve: day 6, part 1 - solve: day 6, part 2
This commit is contained in:
parent
f0953800c5
commit
e40944b22d
3 changed files with 38 additions and 0 deletions
10
2020/06/day6.hs
Normal file
10
2020/06/day6.hs
Normal file
|
@ -0,0 +1,10 @@
|
|||
module Day6 (lines') where
|
||||
|
||||
lines' = joinLines . lines
|
||||
|
||||
joinLines = foldl parse [[]]
|
||||
where
|
||||
parse [[]] s = [[s]]
|
||||
parse [a] "" = [[], a]
|
||||
parse [a] s = [a ++ [s]]
|
||||
parse (a:as) s = parse [a] s ++ as
|
10
2020/06/part1.hs
Executable file
10
2020/06/part1.hs
Executable file
|
@ -0,0 +1,10 @@
|
|||
#!/usr/bin/env runghc
|
||||
|
||||
import Day6
|
||||
import Data.Set (fromList, size)
|
||||
|
||||
main = interact (show . solve . parse)
|
||||
|
||||
solve = sum . map size
|
||||
|
||||
parse = map fromList . lines'
|
18
2020/06/part2.hs
Executable file
18
2020/06/part2.hs
Executable file
|
@ -0,0 +1,18 @@
|
|||
#!/usr/bin/env runghc
|
||||
|
||||
import Day6
|
||||
import Data.Set (fromList, size)
|
||||
|
||||
main = interact (show . solve . parse)
|
||||
|
||||
solve = sum . map countEveryoneYes
|
||||
|
||||
parse = lines'
|
||||
|
||||
countEveryoneYes :: [String] -> Int
|
||||
countEveryoneYes group =
|
||||
length $ filter everyoneYes questions
|
||||
where
|
||||
n = length group
|
||||
questions = ['a'..'z']
|
||||
everyoneYes q = all (elem q) group
|
Loading…
Reference in a new issue