-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathday3.py
36 lines (28 loc) · 824 Bytes
/
day3.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
f = open('day3.txt')
lines = [line.strip() for line in f]
priorities = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
def findPriority(letter):
return priorities.find(letter) + 1
sumPriorities = 0
for rucksack in lines:
mid = len(rucksack) // 2
firstHalfItems = set(rucksack[:mid])
commonItem = ''
for item in rucksack[mid:]:
if item in firstHalfItems:
commonItem = item
break
if commonItem:
sumPriorities += findPriority(commonItem)
print(sumPriorities)
#part 2
sumPriorities = 0
for groupN in range(0, len(lines), 3):
group = lines[groupN: groupN + 3]
commonItems = set(group[0])
for rucksack in group[1:]:
items = set(rucksack)
commonItems = commonItems.intersection(items)
item = commonItems.pop()
sumPriorities += findPriority(item)
print(sumPriorities)