프로그래머스 LV2 - 할인 행사
내 풀이
def solution(want, number, discount):
buy_dict = {}
k = 0
count = 0
for fruit, amount in zip(want, number):
buy_dict[fruit] = amount
while k + 10 <= len(discount):
buy_dict_2 = buy_dict.copy()
for dis in discount[k:k+10]:
if dis in list(buy_dict_2.keys()):
if buy_dict_2[dis] > 0:
buy_dict_2[dis] -= 1
if set(list(buy_dict_2.values())) == {0}:
count += 1
k += 1
return count
다른 풀이
from collections import Counter
def solution(want, number, discount):
answer = 0
check = {}
for w, n in zip(want, number):
check[w] = n
for i in range(len(discount)-9):
c = Counter(discount[i:i+10])
if c == check:
answer += 1
return answer
풀이 해석
- Counter를 이용하여 discount의 인덱스 범위안에서의 상품과 그 갯수를 dict타입으로 표현하였다.
- 이를 want와 number를 이용하여 만든 dict타입과 비교하여 같을 시에 answer를 +1 하는 방식을 이용하였다
배울 점
- Counter는 dict타입으로 나타난다
댓글남기기