Day 3 - Advent of Code 2022
Working solutions for the day 3 puzzles.
Part One
""" day_03_01.py """
# usage: python3 day_03_01.py < input
import string
import sys
def priority(item):
""" calculate priority of item type """
if item.islower():
return string.ascii_lowercase.find(item) + 1
return string.ascii_uppercase.find(item) + 27
priority_total = 0
with sys.stdin as pipe:
for items in pipe:
partition = len(items) // 2
common_item = (set(items[:partition]) & set(items[partition:])).pop()
priority_total += priority(common_item)
print(priority_total)
Part Two
""" day_03_02.py """
# usage: python3 day_03_02.py < input
import string
def priority(item):
""" calculate priority of item type """
if item.islower():
return string.ascii_lowercase.find(item) + 1
return string.ascii_uppercase.find(item) + 27
priority_total = 0
while True:
try:
common_item = (set(input()) & set(input()) & set(input())).pop()
except EOFError:
break
else:
priority_total += priority(common_item)
print(priority_total)