Drill

ProblemsGo › finance

Average monthly figures for a year

mediumfinanceArraysMathGo

Twelve monthly totals summarise a year. Report the average monthly figure, dropping the fractional minor unit.

yearlyAverage(monthlyTotals: list<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 yearlyAverage(monthlyTotals []int) int {
	
}

Worked examples

CallResult
yearlyAverage([]int{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1})1
yearlyAverage([]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12})6
yearlyAverage([]int{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0})0
yearlyAverage([]int{100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100})100

Hint

Guard the length, sum the entries, divide by twelve.

Reference solution in Go
func yearlyAverage(monthlyTotals []int) int {
	if len(monthlyTotals) < 12 {
		return 0
	}
	sum := 0
	for _, v := range monthlyTotals {
		sum += v
	}
	return sum / 12
}

The same problem in another language

More finance problems in Go