Files
adventofcode/4/script.py
Jesse Simpson c620802a0a
Some checks are pending
Build nvim / Build-Packages (push) Waiting to run
day 4: apparently I don't know scratchcards
2023-12-04 18:44:35 -05:00

35 lines
988 B
Python

def parseline(line):
meaningful_input = line.split(":")[1]
input_split = meaningful_input.split("|")
winning_numbers = input_split[0].strip().split(" ")
your_numbers = input_split[1].strip().split(" ")
return winning_numbers, your_numbers
def get_point_value_for_line(winning_numbers, your_numbers):
count = 0
hashmap = {}
for number in winning_numbers:
for index, y in enumerate(your_numbers):
if y == number and not hashmap.get(index):
count += 1
hashmap[index] = True
if count == 0:
return 0
return 2**(count - 1)
def get_lines(filename):
values = []
with open(filename, "r") as inputfile:
for line in inputfile:
winning_numbers, your_numbers = parseline(line)
value = get_point_value_for_line(winning_numbers, your_numbers)
values.append(value)
return sum(values)
if __name__ == '__main__':
print(get_lines("input"))