-
1052. Grumpy Bookstore OwnerAlgorithm/python tip 2021. 2. 28. 02:59
leetcode.com/problems/grumpy-bookstore-owner/
- Time Limit Exceeded
''' https://leetcode.com/problems/grumpy-bookstore-owner/ 점주는 가계를 customers.length 동안 연다. 매분 customers[i] 만큼의 손님이 가계를 들어온다. 특정시간동안 점주는 성격이 더럽다. i번째 min에 점주 성격 상태 grumpy[i]=1, 0 점주 성격이 더러운 상태일때는 손님들은 해당 시간에 불만족한다. 점주는 스스로 x분동안 좋은 성격을 유지하는 비법을 가지고있는데 한번만 사용할 수 있다. 비법을 가장 잘 사용했을때 최대로 만족한 손님 수를 구하라. solution) 손님이 가장 많은 시간에 점주는 정상 상태여야 한다. customers 요소를 순차적으로 X개씩 묶어나갈때 만족한 손님수가 최대인 값을 리턴 ''' class Solution(object): def maxSatisfied(self, customers, grumpy, X): ans = -1 for i in range(0, len(customers) - X + 1): secretSet = set(range(i, i + X)) sum = 0 for j in range(0, len(customers)): if j in secretSet: sum += customers[j] elif grumpy[j] == 0: sum += customers[j] if (sum > ans): ans = sum return ans
- Success
class Solution(object): def maxSatisfied(self, customers, grumpy, X): already_satistied = 0 for i in range(len(grumpy)): if grumpy[i] == 0: already_satistied += customers[i] customers[i] = 0 # X개의 합이 최대인 값? max = -1 for i in range(len(customers) - X + 1): val = sum(customers[i:i+X]) if (val > max): max = val return already_satistied + max
- Best Solution
leetcode.com/problems/grumpy-bookstore-owner/discuss/299284/Python-with-explanation.-Rolling-sum.
'Algorithm > python tip' 카테고리의 다른 글
1726. Tuple with Same Product (0) 2021.03.01 1765. Map of Highest Peak (0) 2021.03.01 1481. Least Number of Unique Integers after K Removals (0) 2021.02.28 565. Array Nesting (0) 2021.02.27 942. DI String Match (0) 2021.02.27