How many openings in the coming weeks
A recurring weekly pattern marks which of the seven weekdays are open. Count the total openings over a number of full weeks.
- The pattern list has exactly 7 booleans, one per weekday starting Monday.
- Each true entry is one opening per week.
- Multiply the weekly count by the number of weeks.
- Zero weeks gives zero openings.
weeklyOpenings(pattern: list<bool>, weeks: 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.
Where you start
func weeklyOpenings(pattern []bool, weeks int) int {
}
Worked examples
| Call | Result |
|---|---|
weeklyOpenings([]bool{true, false, true, false, true, false, false}, 4) | 12 |
weeklyOpenings([]bool{false, false, false, false, false, false, false}, 10) | 0 |
weeklyOpenings([]bool{true, true, true, true, true, true, true}, 2) | 14 |
weeklyOpenings([]bool{true, false, false, false, false, false, false}, 0) | 0 |
Hint
Count the true entries in the pattern once, then multiply.
Reference solution in Go
func weeklyOpenings(pattern []bool, weeks int) int {
perWeek := 0
for _, d := range pattern {
if d {
perWeek++
}
}
return perWeek * weeks
}