commit e7289f0016e3004f76759546dbabf1387fa70e65
parent 203c89450fa570f342e23fe4ae9cc0b58dac5140
Author: Jack Sangdahl <jack@pngu.org>
Date: Sat, 6 Jul 2024 20:55:22 -0600
1518. water bottles
Diffstat:
2 files changed, 51 insertions(+), 0 deletions(-)
diff --git a/water_bottles.c b/water_bottles.c
@@ -0,0 +1,26 @@
+// 1518. Water Bottles
+#include "leetcode.h"
+
+/*
+ * there are 'numBottles' water bottles that are initially full of water. you
+ * can exchange 'numExchange' empty water botls from the market with one full
+ * water bottle. the operation of drinking a full water bottle turns into an
+ * empty bottle. given the two integers 'numBottles' and 'numExchange', return
+ * the maximum number of water bottles you can drink
+ */
+
+int numWaterBottles(int numBottles, int numExchange) {
+ int ans = numBottles;
+ while (numBottles >= numExchange) {
+ int rem = numBottles % numExchange;
+ numBottles /= numExchange;
+ ans += numBottles;
+ numBottles += rem;
+ }
+ return ans;
+}
+
+int main() {
+ printf("%d\n", numWaterBottles(9, 3)); // expect: 13
+ printf("%d\n", numWaterBottles(15, 4)); // expect: 19
+}
diff --git a/water_bottles.py b/water_bottles.py
@@ -0,0 +1,25 @@
+# 1518. Water Bottles
+
+"""
+there are 'numBottles' water bottles that are initially full of water. you
+can exchange 'numExchange' empty water botls from the market with one full
+water bottle. the operation of drinking a full water bottle turns into an
+empty bottle. given the two integers 'numBottles' and 'numExchange', return
+the maximum number of water bottles you can drink
+"""
+
+
+class Solution(object):
+ def numWaterBottles(self, numBottles, numExchange):
+ """
+ :type numBottles: int
+ :type numExchange: int
+ :rtype: int
+ """
+ return (numBottles * numExchange - 1) // (numExchange - 1)
+
+
+if __name__ == "__main__":
+ obj = Solution()
+ print(obj.numWaterBottles(9, 3))
+ print(obj.numWaterBottles(15, 4))