30 lines
849 B
Python
30 lines
849 B
Python
|
#! /usr/bin/env python3
|
||
|
from collections import Counter
|
||
|
|
||
|
|
||
|
def part1(inp):
|
||
|
groups = open(inp).read().split("\n\n")
|
||
|
number_of_questions = 0
|
||
|
for group in groups:
|
||
|
unique_questions = set(group.replace("\n", ""))
|
||
|
number_of_questions += len(unique_questions)
|
||
|
print(number_of_questions)
|
||
|
|
||
|
|
||
|
def part2(inp):
|
||
|
# number of questions for which everyone in a group answered 'yes'
|
||
|
number_of_questions = 0
|
||
|
groups = open(inp).read().split("\n\n")
|
||
|
|
||
|
for group in groups:
|
||
|
group_length = group.count("\n") + 1
|
||
|
group_counter = Counter(group.replace("\n", ""))
|
||
|
everyone_answered = [k for (k, v) in group_counter.items() if v == group_length]
|
||
|
number_of_questions += len(everyone_answered)
|
||
|
print(number_of_questions)
|
||
|
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
part1("input.txt")
|
||
|
part2("input.txt")
|