배열의 연속된 부분 10개의 값이 원하는 값이 되는 경우의 수를 구하는 문제입니다. 문제에는 필요한 물건이 담긴 배열, 물건별로 필요한 개수가 담긴 배열, 물건이 담긴 배열이 주어집니다.
def solution(want, number, discount):
answer = 0
item={}
for i in range(10):
if discount[i] in item:
item[discount[i]]+=1
else:
item[discount[i]]=1
if check(want, item, number):
answer+=1
for i in range(len(discount)-10):
if item[discount[i]]==1:
del item[discount[i]]
else:
item[discount[i]]-=1
if discount[i+10] in item:
item[discount[i+10]]+=1
else:
item[discount[i+10]]=1
if check(want, item, number):
answer+=1
return answer
def check(w, i, n):
for j in range(len(w)):
if w[j] not in i or n[j]!=i[w[j]]:
return False
return True