-
Notifications
You must be signed in to change notification settings - Fork 0
/
shopping_perc_diff.py
48 lines (41 loc) · 1.47 KB
/
shopping_perc_diff.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
def solution(prices, notes, x):
'''
prices = online prices
notes = higher/lower than instore price
x = price overpay limit
ex: prices = [110, 95, 70]
notes = ["10.0% higher than in-store",
"5.0% lower than in-store",
"Same as in-store"]
x = 5
determines whether a given customer will be willing to pay for the given items
in their cart based on their stated price sensitivity x.
'''
percdiff = []
total = [] # in store price
final = [] # online - instore
for i in notes:
if i == 'Same as in-store':
percdiff.append(0)
elif i != 'Same as in-store':
# append note2 with percentage difference
if 'higher' in i:
percent_diff = float((i.split('%')[0]))
percdiff.append(percent_diff)
elif 'lower' in i:
percent_diff = -abs(float((i.split('%')[0])))
percdiff.append(percent_diff)
# number of dollars more or less
for price, perc in zip(prices, percdiff):
if perc == 0:
total.append(price)
elif perc > 0:
total.append(price / (abs(perc)/100 + 1))
elif perc < 0:
total.append(price / (1 - abs(perc)/100))
for online, instore in zip(prices, total):
final.append(round(online - instore, 4))
if sum(final) > x:
return False
elif sum(final) <= x:
return True