Drill

ProblemsGo › billing

Refund for partially used service

mediumbillingMathGo

A customer paid upfront but only used part of the service. Refund the unused portion.

partialRefund(paid: int, usedUnits: int, unitPrice: 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 partialRefund(paid int, usedUnits int, unitPrice int) int {
	
}

Worked examples

CallResult
partialRefund(1000, 40, 10)600
partialRefund(1000, 200, 10)0
partialRefund(500, 0, 50)500
partialRefund(1000, 100, 10)0

Hint

Multiply usage by price, subtract from what was paid, and clamp.

Reference solution in Go
func partialRefund(paid int, usedUnits int, unitPrice int) int {
	cost := usedUnits * unitPrice
	if paid > cost {
		return paid - cost
	}
	return 0
}

The same problem in another language

More billing problems in Go