Skip to content

Instantly share code, notes, and snippets.

@dartharva
Created December 3, 2022 12:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dartharva/10d3795aab191852f4f97b1fb3205922 to your computer and use it in GitHub Desktop.
Save dartharva/10d3795aab191852f4f97b1fb3205922 to your computer and use it in GitHub Desktop.
Advent of Code 2022, Day 3 - Simple, verbose python
with open('input.txt', 'r') as file:
rucksacks = file.read().strip().split()
def priority(letter):
if letter.islower():
return ord(letter) - ord('a') + 1
else:
return ord(letter) - ord('A') + 27
def common_items(rucksacks):
common_item_types = []
for item in rucksacks:
c_1, c_2 = item[:len(item)//2], item[len(item)//2:]
unique = []
for k in sorted(c_1):
if k not in unique:
unique.append(k)
for x in unique:
if x in sorted(c_2):
common_item_types.append(x)
return common_item_types
def badges(rucksacks):
badge_list = []
for i in range(0, len(rucksacks), 3):
sack_1, sack_2, sack_3 = rucksacks[i:i+3]
badge = set(sack_1) & set(sack_2) & set(sack_3)
badge_list.append(badge.pop())
return badge_list
common_item_priorities = [priority(i) for i in common_items(rucksacks)]
badge_priorities = [priority(i) for i in badges(rucksacks)]
print(sum(common_item_priorities), sum(badge_priorities))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment