Drill

ProblemsPython › machines

How many machines are past calibration

mediummachinesPython

Every machine has a last calibration date and a calibration interval in days. Count how many should have been recalibrated by today.

calibration_overdue(machines: list<Machine>, today: int) → int

Solve it in the editor →

Where you start

def calibration_overdue(machines: list[Machine], today: int) -> int:
    

Worked examples

CallResult
calibration_overdue([Machine(last_service=100, interval_days=10), Machine(last_service=95, interval_days=10), Machine(last_service=110, interval_days=10)], 110)1
calibration_overdue([Machine(last_service=0, interval_days=0)], 100)1
calibration_overdue([Machine(last_service=100, interval_days=20), Machine(last_service=100, interval_days=20)], 119)0
calibration_overdue([], 50)0

Hint

Run the strict comparison, with the broken-policy case short-circuiting.

Reference solution in Python
def calibration_overdue(machines: list[Machine], today: int) -> int:
    return sum(1 for m in machines if m.interval_days <= 0 or today - m.last_service > m.interval_days)

The same problem in another language

More machines problems in Python