How many active weekdays in a span
A project runs for a number of calendar days but only counts effort on specified weekdays. Return the number of active days.
- activeDays lists weekday numbers 0 (Monday) through 6 (Sunday).
- Calendar day 0 is the first day; day d falls on weekday d mod 7.
- Count every day in 0 .. days−1 whose weekday appears in activeDays.
- An empty activeDays list means no days count.
active_day_count(active_days: list<int>, days: int) → int
Where you start
def active_day_count(active_days: list[int], days: int) -> int:
Worked examples
| Call | Result |
|---|---|
active_day_count([0], 7) | 1 |
active_day_count([0, 2, 4], 7) | 3 |
active_day_count([0, 2, 4], 10) | 5 |
active_day_count([3], 1) | 0 |
Hint
Build a 7-slot lookup array of booleans once, then loop over the days and test each weekday against it.
Reference solution in Python
def active_day_count(active_days: list[int], days: int) -> int:
active = [False] * 7
for d in active_days:
active[d] = True
count = 0
for i in range(days):
if active[i % 7]:
count += 1
return count