diff --git a/2020/src/day6.nim b/2020/src/day6.nim index 2e698d6..40d18dd 100644 --- a/2020/src/day6.nim +++ b/2020/src/day6.nim @@ -1,9 +1,10 @@ import streams, sets, strutils, sequtils +proc asGroups(s: Stream): seq[seq[string]] = + s.readAll.split("\n\n").mapIt it.split("\n").filterIt(it != "") + proc part1*(s: Stream): int = - s.readAll().split("\n\n").mapIt(it.split("\n").foldl(a.union(b.toHashSet), initHashSet[char]()).len).foldl(a + b) + s.asGroups.mapIt(it.foldl(a.union(b.toHashSet), initHashSet[char]()).len).foldl a + b proc part2*(s: Stream): int = - s.readAll().split("\n\n").mapIt( - it.split("\n").filterIt(it != "").foldl(a.intersection(b.toHashSet), "abcdefghijklmnopqrstuvwxyz".toHashSet()).len - ).foldl(a + b) + s.asGroups.mapIt(it.foldl(a.intersection(b.toHashSet), toSeq('a'..'z').toHashSet).len).foldl(a + b)