새소식

Career/Coding Test

99클럽 코테 스터디 27/99일차 TIL #할인 행사(미들러)

  • -
반응형
'''
일정 금액 지불 -> 10일간 회원
회원: 매일 한 가지 할인 -> 하루에 하나만 구매 가능
자신이 원하는 제품과 수량이 할인하는 날짜랑 10일 연속으로 일치할 경우 회원가입

discount=["chicken", "apple", "apple", "banana", "rice", "apple", "pork", "banana", "pork", "rice", "pot", "banana", "apple", "banana"]	
want=["banana", "apple", "rice", "pork", "pot"]	
number=[3, 2, 2, 2, 1]	
=> want_dict = dict(zip(want, number))


'''

from collections import Counter

def solution(want, number, discount):
    # 필요한 제품과 수량을 딕셔너리로 저장
    want_dict = dict(zip(want, number))
    days = len(discount) - 9  # 10일 연속 기간을 검사할 수 있는 시작 지점 수
    
    valid_days = 0
    
    for i in range(days):
        # 현재 10일간의 할인 제품 리스트
        current_window = discount[i:i+10]
        # 이 구간의 제품 수량을 카운트
        current_count = Counter(current_window)
        
        # 모든 제품이 원하는 수량만큼 있는지 확인
        if all(current_count[item] >= want_dict[item] for item in want_dict):
            valid_days += 1
    
    return valid_days
반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.