Drill

ProblemsGo › production

How busy was the line

mediumproductionMathGo

A shift board shows what share of the planned time the line was actually running.

utilisationPercent(runMinutes: int, plannedMinutes: 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 utilisationPercent(runMinutes int, plannedMinutes int) int {
	
}

Worked examples

CallResult
utilisationPercent(420, 480)88
utilisationPercent(480, 480)100
utilisationPercent(500, 480)100
utilisationPercent(0, 480)0

Hint

Round first, then cap. Capping first hides the rounding.

Reference solution in Go
func utilisationPercent(runMinutes int, plannedMinutes int) int {
	if plannedMinutes <= 0 || runMinutes <= 0 {
		return 0
	}
	pct := (runMinutes*100 + plannedMinutes/2) / plannedMinutes
	if pct > 100 {
		return 100
	}
	return pct
}

The same problem in another language

More production problems in Go