part2
This commit is contained in:
parent
f6ad7bc22d
commit
56afef37d7
@ -17,7 +17,8 @@ def load_cards(rows):
|
|||||||
have_numbers=have_numbers,
|
have_numbers=have_numbers,
|
||||||
have=have,
|
have=have,
|
||||||
have_count=len(have),
|
have_count=len(have),
|
||||||
points=0
|
points=0,
|
||||||
|
refs=0
|
||||||
)
|
)
|
||||||
if have:
|
if have:
|
||||||
points = 1
|
points = 1
|
||||||
@ -29,18 +30,25 @@ def load_cards(rows):
|
|||||||
# @shared.profile
|
# @shared.profile
|
||||||
def part1(cards):
|
def part1(cards):
|
||||||
print(sum(card['points'] for _, card in cards.items()))
|
print(sum(card['points'] for _, card in cards.items()))
|
||||||
print(cards[1].keys())
|
|
||||||
|
|
||||||
|
|
||||||
# @shared.profile
|
# @shared.profile
|
||||||
def part2(cards):
|
def part2(cards):
|
||||||
card_ids = list(range(len(cards)+1))
|
card_ids = list(range(len(cards)+1))
|
||||||
# 'winning_numbers', 'have_numbers', 'have', 'have_count', 'points'
|
|
||||||
for card_id, card in cards.items():
|
for card_id, card in cards.items():
|
||||||
nn = [x+card_id for x in range(card['have_count'])]
|
nn = [x+1+card_id for x in range(card['have_count'])]
|
||||||
breakpoint()
|
if not nn:
|
||||||
|
continue
|
||||||
|
|
||||||
|
# One point for initially having the card
|
||||||
|
for idx in nn:
|
||||||
|
cards[idx]['refs'] += 1
|
||||||
|
# X more points for how many times this card is referenced
|
||||||
|
for _ in range(card['refs']):
|
||||||
|
for idx in nn:
|
||||||
|
cards[idx]['refs'] += 1
|
||||||
|
# Sum the ref counts, and then add the total cards in
|
||||||
|
print(sum(card['refs'] for _, card in cards.items()) +len(cards))
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
|
Loading…
Reference in New Issue
Block a user