42 lines
936 B
Python
42 lines
936 B
Python
|
|
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}")
|