aboutsummaryrefslogtreecommitdiff
path: root/average_waiting_time.py
diff options
context:
space:
mode:
Diffstat (limited to 'average_waiting_time.py')
-rw-r--r--average_waiting_time.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/average_waiting_time.py b/average_waiting_time.py
new file mode 100644
index 0000000..b6173cf
--- /dev/null
+++ b/average_waiting_time.py
@@ -0,0 +1,31 @@
+# 1701. Average Waiting Time
+
+"""
+there is a restaurant with a single chef. you are given an array 'customers'
+where 'customers[i] = [arrivali, timei]'. where 'arrivali' is the arrival
+time of the i'th customer. the arrival times are sorted in non decreasing
+order, and 'timei' is the time needed to prepare the order of the i'th
+customer. when a customer arrives, he gives the chef his order and the chef
+prepares it. return the average waiting time of all customers. solutions
+within 10^-5 from actually answer are considered accepted
+"""
+
+
+class Solution(object):
+ def averageWaitingTime(self, customers):
+ """
+ :type customers: List[List[int]]
+ :rtype: float
+ """
+ wait, curr = 0, 0
+ for c in customers:
+ curr = max(curr, c[0]) + c[1]
+ wait += curr - c[0]
+ avg = wait / len(customers)
+ return avg
+
+
+if __name__ == "__main__":
+ obj = Solution()
+ print(obj.averageWaitingTime(customers=[[1, 2], [2, 5], [4, 3]]))
+ print(obj.averageWaitingTime(customers=[[5, 2], [5, 4], [10, 3], [20, 1]]))