You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

30 lines
842 B

#!/usr/bin/env python3
import sys,string
import numpy as np
def find_badge(r):
r1,r2,r3 = r
i1 = set(r1).intersection(set(r2))
i2 = set(r3).intersection(i1)
item = list(i2)[0]
p = string.ascii_letters.index(item) + 1
return p
if __name__ == '__main__':
sacks = [list(line.strip('\n')) for line in open(sys.argv[1])]
# challenge 1
priorities = 0
for sack in sacks:
item = list(set(sack[:len(sack)//2]).intersection(set(sack[len(sack)//2:])))[0]
priorities = priorities + string.ascii_letters.index(item) + 1
res1 = str(priorities)
print("challenge 1:" + "\n" + res1 + "\n")
# challenge 2
s = np.array_split(np.array(sacks,dtype=object),len(sacks)/3)
prios = list(map(find_badge,s))
res2 = str(np.sum(prios))
print("challenge 2:" + "\n" + res2 + "\n")