def item_in_range(item, id_range): start = id_range[0] end = id_range[1] return start <= item <= end def check_item(item, id_ranges): for id_range in id_ranges: if item_in_range(item, id_range): return True return False def read_input(filename): id_ranges = [] inventory = [] read_range = True for line in open(filename).read().splitlines(): if line == "": read_range = False continue if read_range: id_range = line.split("-") id_ranges.append((int(id_range[0]),int(id_range[1]))) else: inventory.append(int(line)) return id_ranges, inventory # filename = "day05/example_input" # 3 filename = "day05/input" # 679 id_ranges, inventory = read_input(filename) counter = 0 for item in inventory: if check_item(item, id_ranges): counter += 1 print(f"Fresh items: {counter}")