Day 6 Notes +--------+ | Part 1 | +--------+ $ elixir day6part1.exs 6585 Thoughts: So far I've read the whole file into memory. I initially did that here to get the answer quickly to preserve my leaderboard position 🌟, but then refactored to use File.stream! to parse the file line-by-line. This meant using Stream.chunk_by to sort into groups. Join all the answers together, and use Enum.frequencies/1 to count all the answers (discarding newlines). +--------+ | Part 2 | +--------+ $ elixir day6part2.exs 3276 Thoughts: Not stripping the newlines came in handy here, because I could use them to count how many people are in each group. Then I could just count the frequencies that were answered by the whole group, and finally sum those results. +------------------+ | Overall Thoughts | +------------------+ I didn't get an accurate time for this one due to having lunch between parts 1 and 2 🍝. Got the answer under an hour including lunch, but more like two hours including streaming the file and tidying up. Using Map.pop/2 to remove an element and return its value at the same time is probably the most notable thing here? I wonder if there's a more effective way to parse the stream dynamically and also strip off the new lines? ** Update ** From other people's answers, taking the intersection of all the replies was the best way to implement this. Makes sense. I think I'm succumbing to pressure to complete quickly due to the leaderboard, and just going with whatever works rather than reading the question properly and working out what it's *really* asking.