2023 Day 4

This commit is contained in:
2023-12-04 20:21:58 +00:00
parent 1077a375c7
commit 6fbe7871d5
2 changed files with 61 additions and 0 deletions

26
2023/Day-04/day04-1.py Executable file
View File

@@ -0,0 +1,26 @@
#!/usr/bin/python3
def main():
total = 0
with open('input.txt', 'r') as input_file:
for line in input_file:
card_total = 0
scratchcard = line.split(':')[1]
winners = scratchcard.split('|')[0].strip().split(' ')
winners = [winner for winner in winners if winner != '']
my_nums = scratchcard.split('|')[1].strip().split(' ')
my_nums = [num for num in my_nums if num != '']
for num in my_nums:
if num in winners:
if card_total == 0:
card_total += 1
elif card_total > 0:
card_total = card_total * 2
total += card_total
print(total)
if __name__ == '__main__':
main()

35
2023/Day-04/day04-2.py Executable file
View File

@@ -0,0 +1,35 @@
#!/usr/bin/python3
def main():
num_cards = {}
card_points = {}
total_cards = 0
with open('input.txt', 'r') as input_file:
for line in input_file:
card_total = 0
scratchcard = line.split(':')[1]
winners = scratchcard.split('|')[0].strip().split(' ')
winners = [winner for winner in winners if winner != '']
my_nums = scratchcard.split('|')[1].strip().split(' ')
my_nums = [num for num in my_nums if num != '']
for num in my_nums:
if num in winners:
card_total += 1
card_points[tuple(my_nums)] = card_total
num_cards[tuple(my_nums)] = 1
total_cards += 1
cards = list(num_cards.keys())
for card in cards:
index = cards.index(card)
cards_to_copy = list(range(index+1, index+1+card_points[card]))
for new_card in cards_to_copy:
num_cards[cards[new_card]] += (1 * num_cards[card])
total_cards += (len(cards_to_copy) * num_cards[card])
print(total_cards)
if __name__ == '__main__':
main()