Day 6: Part 1
This commit is contained in:
18
day5/main.py
18
day5/main.py
@@ -23,6 +23,18 @@ for item in maybeRotten:
|
||||
safeFoodNumber+=1
|
||||
break
|
||||
|
||||
print(safeRanges)
|
||||
print(maybeRotten)
|
||||
print(safeFoodNumber)
|
||||
# merge intervals and count unique IDs without allocating every ID
|
||||
merged = []
|
||||
for start, end in sorted(safeRanges, key=lambda r: r[0]):
|
||||
if not merged or start > merged[-1][1] + 1:
|
||||
merged.append([start, end])
|
||||
else:
|
||||
merged[-1][1] = max(merged[-1][1], end)
|
||||
|
||||
total_covered = sum(end - start + 1 for start, end in merged)
|
||||
#print(total_covered)
|
||||
# if you need the compact intervals for lookups later: safeRanges = merged
|
||||
|
||||
#print(safeRanges)
|
||||
#print(maybeRotten)
|
||||
print(f"Part 1: {safeFoodNumber}\n\rPart 2: {total_covered}")
|
||||
|
||||
Reference in New Issue
Block a user