import shared import string def part1(rucksacks): total = 0 for comp1, comp2 in [(r[: len(r) // 2], r[len(r) // 2 :]) for r in rucksacks]: c1 = set(x for x in comp1) c2 = set(x for x in comp2) match = list(c1.intersection(c2))[0] total += string.ascii_letters.index(match) + 1 print(total) def part2(rucksacks): total = 0 for idx in range(0, len(rucksacks), 3): r1, r2, r3 = rucksacks[idx : idx + 3] c1 = set(x for x in r1) c2 = set(x for x in r2) c3 = set(x for x in r3) match = list(c1.intersection(c2).intersection(c3))[0] total += string.ascii_letters.index(match) + 1 print(total) def main(): rows = [row for row in shared.load(3)] part1(rows) part2(rows) if __name__ == "__main__": main()