मान लीजिए हमारे पास reviews नामक एक लिस्ट और एक थ्रेशोल्ड मान t है। reviews में प्रत्येक आइटम [x, y] है जिसका अर्थ है उत्पाद i को x संख्या में 5-स्टार रेटिंग और y संख्या में रिव्यू मिले हैं। हमें अतिरिक्त 5-स्टार रिव्यू की न्यूनतम संख्या ढूंढनी है ताकि उन आइटम्स की लिस्ट के लिए 5-स्टार रिव्यू का प्रतिशत कम से कम t प्रतिशत हो।
उदाहरण के लिए, यदि इनपुट है reviews = [[3, 4],[1, 2],[4, 6]], threshold = 78, तो आउटपुट होगा 7, क्योंकि कुल मिलाकर 8 5-स्टार रिव्यू और 12 रिव्यू थे। 78% 5-स्टार रिव्यू तक पहुंचने के लिए, हमें 7 और 5-स्टार रिव्यू की आवश्यकता है।
समाधान दृष्टिकोण
कुल 5-स्टार a और कुल रिव्यू b की गणना करें। यदि a*100 >= t*b पहले से ही है, तो 0 लौटाएं। अन्यथा delta = t*b - 100*a के लिए हल करें: प्रत्येक नया 5-स्टार रिव्यू a और b दोनों को 1 से बढ़ाता है। फॉर्मूला: (delta + (99-t)) // (100-t)।
a = 0,b = 0आरंभ करें।- प्रत्येक
(c, d)के लिएreviewsमें:a += c,b += d। - यदि
a*100 >= t*b, तो 0 लौटाएं। delta = t*b - 100*a।(delta + (99-t)) // (100-t)लौटाएं।
पायथन कार्यान्वयन
def solve(reviews, t):
a = 0
b = 0
for c, d in reviews:
a += c
b += d
if a * 100 >= t * b:
return 0
delta = t * b - 100 * a
return (delta + (99 - t)) // (100 - t)
reviews = [
[3, 4],
[1, 2],
[4, 6]
]
t = 78
print(solve(reviews, t))
इनपुट
[[3, 4], [1, 2],[4, 6] ],78
आउटपुट
7