Drill

ProblemsGo › events

How many active weekdays in a span

mediumeventsArraysMathGo

A project runs for a number of calendar days but only counts effort on specified weekdays. Return the number of active days.

activeDayCount(activeDays: list<int>, days: int) → int

Go needs a compiler and Drill does not host one yet, so this page is the reference rather than an exercise: the problem, worked examples, and the solution in full. To type it out, the same problem runs in Python.

Solve it in Python →

Where you start

func activeDayCount(activeDays []int, days int) int {
	
}

Worked examples

CallResult
activeDayCount([]int{0}, 7)1
activeDayCount([]int{0, 2, 4}, 7)3
activeDayCount([]int{0, 2, 4}, 10)5
activeDayCount([]int{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 Go
func activeDayCount(activeDays []int, days int) int {
	active := [7]bool{}
	for _, d := range activeDays {
		active[d] = true
	}
	count := 0
	for i := 0; i < days; i++ {
		if active[i%7] {
			count++	
		}
	}
	return count
}

The same problem in another language

More events problems in Go