Files
advent_of_code/2023/04/part 2 solution.py
T
2023-12-17 17:44:07 +00:00

56 lines
1.8 KiB
Python

import os
with open(r'advent_of_code\2023\04\input.txt', 'r') as file:
input = file.readlines()
# print(input)
test_input = '''Card 1: 41 48 83 86 17 | 83 86 6 31 17 9 48 53
Card 2: 13 32 20 16 61 | 61 30 68 82 17 32 24 19
Card 3: 1 21 53 59 44 | 69 82 63 72 16 21 14 1
Card 4: 41 92 73 84 69 | 59 84 76 51 58 5 54 83
Card 5: 87 83 26 28 32 | 88 30 70 12 93 22 82 36
Card 6: 31 18 13 56 72 | 74 77 10 23 35 67 36 11'''
#input = test_input.split('\n')
card_count = {}
for card in range(1,len(input)+1):
card_count[card] = 1
for line in input:
winning_numbers = []
my_numbers = []
line = line.split('|')
card_number = line[0].split(':')[0].split()[1]
winning_numbers = line[0].split(':')[1].split()
my_numbers = line[1].split()
print(f'card number: {card_number}')
#print(f'my numbers are: {my_numbers}')
#print(f'winning numbers are: {winning_numbers}')
# loop for the amount of times we have a duplciate card
for i in range(card_count[int(card_number)]):
wins = 0
for number in my_numbers:
if number in winning_numbers:
wins += 1
else:
pass
if wins > 0:
#print(f'wins: {wins}')
# add 1 duplicate card for each card following this one
for win in range(int(wins)):
add_duplicates = int(card_number) + 1 + win
#print(f'add duplicates: {add_duplicates}')
if add_duplicates in card_count:
card_count[add_duplicates] += 1
else:
card_count[add_duplicates] += 0
#print(f'card_count: {card_count}')
print(f'card_count: {card_count}')
#sum up all the values in the dictionary
total_cards = sum(card_count.values())
print(f'total cards: {total_cards}')