|
|
@@ -1,25 +1,41 @@
|
|
|
import os, argparse
|
|
|
|
|
|
-def get_unique(line):
|
|
|
+def solve_task(backpacks):
|
|
|
+ group_size = 3
|
|
|
+ sum_of_priorities = 0
|
|
|
+
|
|
|
+ # Run once per group
|
|
|
+ for group_number in range(len(backpacks)//group_size):
|
|
|
+ group_backpacks = backpacks[group_number * group_size : (group_number + 1)*group_size]
|
|
|
+ # Special treatment for the first backpack
|
|
|
+ items_sieve = get_unique_items(group_backpacks[0])
|
|
|
+
|
|
|
+ # For the remaining packs..
|
|
|
+ for backpack in group_backpacks[1:]:
|
|
|
+ for item in list(items_sieve.keys()):
|
|
|
+ if item not in backpack:
|
|
|
+ items_sieve.pop(item)
|
|
|
+
|
|
|
+ # Simple error check
|
|
|
+ if len(items_sieve) != 1:
|
|
|
+ print("This is so wrong!")
|
|
|
+ quit()
|
|
|
+
|
|
|
+ # Add the sole remaining item to the results
|
|
|
+ sum_of_priorities += get_priority(next(iter(items_sieve)))
|
|
|
+
|
|
|
+ print(sum_of_priorities)
|
|
|
+
|
|
|
+def get_unique_items(line):
|
|
|
uniques = {}
|
|
|
for c in line:
|
|
|
uniques[c] = 1
|
|
|
- return [d.key for d in uniques.items]
|
|
|
-
|
|
|
-
|
|
|
-def solve_task(lines):
|
|
|
- duplicate_objects = []
|
|
|
- priority_sum = 0
|
|
|
- unique_group_items = {}
|
|
|
- member_counter = 0
|
|
|
- for line in lines:
|
|
|
- pass
|
|
|
- print(duplicate_objects)
|
|
|
- print(priority_sum)
|
|
|
+ #return [k for k in uniques.keys()]
|
|
|
+ return uniques
|
|
|
|
|
|
def get_priority(item):
|
|
|
item_code = ord(item)
|
|
|
- if item >= 'a' and item <= 'z':
|
|
|
+ if item >= 'a':
|
|
|
return item_code - ord('a') + 1
|
|
|
else:
|
|
|
return item_code - ord('A') + 27
|