33 lines
740 B
Python
33 lines
740 B
Python
def part1(gh: list):
|
|
|
|
l, r = [x.split("-") for x in gh]
|
|
|
|
v = 0
|
|
v += (
|
|
1
|
|
if (int(l[0]) >= int(r[0]) and int(l[1]) <= int(r[1]))
|
|
or (int(r[0]) >= int(l[0]) and int(r[1]) <= int(l[1]))
|
|
else 0
|
|
)
|
|
return v
|
|
|
|
|
|
def part2(gh: list):
|
|
l, r = [x.split("-") for x in gh]
|
|
first = [x for x in range(int(l[0]), int(l[1]) + 1)]
|
|
second = [x for x in range(int(r[0]), int(r[1]) + 1)]
|
|
|
|
overlap = [x for x in first if x in second]
|
|
return 1 if overlap.__len__() > 0 else 0
|
|
|
|
|
|
with open("input", "+r") as file:
|
|
p1 = 0
|
|
p2 = 0
|
|
for f in file.readlines():
|
|
d = f.strip().split(",")
|
|
p1 += part1(d)
|
|
p2 += part2(d)
|
|
print("part 1:", p1)
|
|
print("part 2:", p2)
|