Day 4
This commit is contained in:
1 parent
0c3db95461
commit
bc158d12e1
4 files changed
+259
No files matched your search
Executable
+33
@@ -0,0 +1,33 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import sys, re
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
cards = [line.strip('\n').split(':') for line in open(sys.argv[1])]
|
||||
|
||||
res1 = 0
|
||||
carddict = {}
|
||||
for i in range(len(cards)):
|
||||
carddict[i] = 1
|
||||
for (card, nums) in cards:
|
||||
cardnum = int(re.search(r'(\d+)', card).group())
|
||||
win, num = nums.split('|')
|
||||
win = set(win.split(' '))
|
||||
num = set(num.split(' '))
|
||||
winnum = win.intersection(num)
|
||||
winnum.remove('')
|
||||
winnings = len(winnum)
|
||||
res1 += 2**(winnings-1) if winnings > 0 else 0
|
||||
for i in range(1, winnings+1):
|
||||
carddict[cardnum+i] += 1*carddict[cardnum]
|
||||
|
||||
|
||||
# challenge 1
|
||||
res1 = str(res1)
|
||||
print(f"challenge 1:\n{res1}\n")
|
||||
|
||||
# challenge 2
|
||||
res2 = sum(carddict.values())
|
||||
print(f"challenge 2:\n{res2}\n")
|
||||
|
||||
Reference in new issue
Block a user