Day 04 Part 01 Done!
This commit is contained in:
parent
4601301f0c
commit
f1aaf26e86
|
|
@ -8,18 +8,41 @@ def debug_print(printname, *args):
|
||||||
if DEBUG:
|
if DEBUG:
|
||||||
print(f"{'DEBUG::'+printname:<{debug_padding}}", *args)
|
print(f"{'DEBUG::'+printname:<{debug_padding}}", *args)
|
||||||
|
|
||||||
|
def get_points(match_count):
|
||||||
|
return 0 if match_count==0 else 2**(match_count-1)
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class Card:
|
||||||
|
card_no: int = 0
|
||||||
|
winning_numbers: set = field(default_factory=set)
|
||||||
|
my_numbers: list = field(default_factory=list)
|
||||||
|
|
||||||
|
|
||||||
|
cards = []
|
||||||
|
total_points = 0
|
||||||
|
|
||||||
print("Parsing Input:")
|
print("Parsing Input:")
|
||||||
print("")
|
print("")
|
||||||
print("===================================\n");
|
print("===================================\n");
|
||||||
|
|
||||||
FILENAME = "/home/icaema/Public/advent-of-code/day-XX/data/p01test.txt"
|
FILENAME = "/home/icaema/Public/advent-of-code/day-04/data/p01data.txt"
|
||||||
f = open(FILENAME, "r")
|
f = open(FILENAME, "r")
|
||||||
|
|
||||||
#for line in sys.stdin:
|
#for line in sys.stdin:
|
||||||
for line in f.readlines():
|
for line in f.readlines():
|
||||||
line = line.strip()
|
line = line.strip().replace(' ', ' ').replace('Card ', '').replace(' | ', '|')
|
||||||
|
#card_side
|
||||||
|
card_number = int(line.split(':')[0])
|
||||||
|
[winning_numbers,my_numbers] = line.split(':')[1].split('|')
|
||||||
|
|
||||||
|
winning_numbers = set([int(wn) for wn in winning_numbers.strip().split(' ')])
|
||||||
|
my_numbers = [int(mn) for mn in my_numbers.strip().split(' ')]
|
||||||
|
|
||||||
|
total_points += get_points(len([x for x in my_numbers if x in winning_numbers]))
|
||||||
|
|
||||||
|
current_card = Card(card_number, winning_numbers, my_numbers)
|
||||||
debug_print("input", line)
|
debug_print("input", line)
|
||||||
|
debug_print("parsed", current_card)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -46,4 +69,4 @@ print("===================================\n");
|
||||||
print("")
|
print("")
|
||||||
print(" Answer:")
|
print(" Answer:")
|
||||||
print("===================================\n");
|
print("===================================\n");
|
||||||
print("Answer: XXX");
|
print(f"Answer: \n{total_points}");
|
||||||
Loading…
Reference in New Issue