diff --git a/4/script.py b/4/script.py index 181489d..029dc51 100644 --- a/4/script.py +++ b/4/script.py @@ -3,8 +3,13 @@ def parseline(line): input_split = meaningful_input.split("|") winning_numbers = input_split[0].strip().split(" ") your_numbers = input_split[1].strip().split(" ") - return winning_numbers, your_numbers + no_empty_win = list(filter(lambda x: x != '', winning_numbers)) + no_empty_yours = list(filter(lambda x: x != '', your_numbers)) + return no_empty_win, no_empty_yours +def detect_duplicates(list_of_nums): + print(list_of_nums) + return len(set(list_of_nums)) != len(list_of_nums) def get_point_value_for_line(winning_numbers, your_numbers): count = 0 @@ -22,8 +27,14 @@ def get_point_value_for_line(winning_numbers, your_numbers): def get_lines(filename): values = [] with open(filename, "r") as inputfile: - for line in inputfile: + for index, line in enumerate(inputfile): + newindex = index + 1 winning_numbers, your_numbers = parseline(line) + + if detect_duplicates(winning_numbers): + print(f"Card {newindex}: Winning numbers has duplicates") + if detect_duplicates(your_numbers): + print(f"Card {newindex}: your numbers has duplicates") value = get_point_value_for_line(winning_numbers, your_numbers) values.append(value) return sum(values)