I am trying this only after few hour of the challenge unlocked. And first part was easy to solve. But for second part, I had to take help from reddit thread, specially here.
From few challenges, I first started with the toy example given there and if all the cases matches on this example input then feed my input to this algorithm and done. Here, day6_test.txt
is a example input present on the challenge link. And day6.txt
is my input. A repo with output is present at GitHub.
with open("day6_test.txt", "r") as fp: lines=fp.readlines() with open("day6.txt", "r") as fp: lines=fp.readlines() groups = [] group = [] for question in lines: if question!="\n": group.append(question.split("\n")[0]) else: groups.append(group) group=[] groups.append(group) # solution to challenge 1 solution_1 = [] for group in groups: #print(f"Group: ", group) unique_ques = [] for ques in group: unique_ques.extend([uq for uq in ques]) #print(f"Unique questions: {set(unique_ques)}") solution_1.extend(list(set(unique_ques))) print(f"Solution 1: {len(solution_1)}") # solution to challenge 2 from collections import Counter total = 0 for group in groups: #print(f"\nGroup: {group}") group_size = len(group) #print(f"Length of group: {group_size}") # make single list of enitire group and count occurence counts = Counter("".join(group)) #print(counts) counts = Counter(list(counts.values()))[group_size] total+=counts print(f"Solution 2:", total)
I write blogs about Computer Vision projects on my GitHub page q-viper.github.io and if you got some time please share yours too.
Top comments (6)
Here is my Python solution:
Github Link
So simple yet so tricky.
My haskell solution
Just in 3 lines. It is great.
Ruby two liner
Still it is awesome. Thanks for sharing.