[programmers/py] 할인 행사

승민·2023년 10월 18일

알고리즘

목록 보기
33/171

할인 행사

https://school.programmers.co.kr/learn/courses/30/lessons/131127

문제 설명

정현이가 원하는 제품을 나타내는 문자열 배열 want와 정현이가 원하는 제품의 수량을 나타내는 정수 배열 number, XYZ 마트에서 할인하는 제품을 나타내는 문자열 배열 discount가 주어졌을 때, 회원등록시 정현이가 원하는 제품을 모두 할인 받을 수 있는 회원등록 날짜의 총 일수를 return 하는 solution 함수를 완성하시오. 가능한 날이 없으면 0을 return 합니다.

풀이

  1. 원하는 물품과 수량을 dic에 저장
  2. 10일씩 자르며 물품과 수량이 일치하는 날을 확인
  3. 일치하면 answer+1
def solution(want, number, discount):
    
    dic = {}
    answer = 0
    
    for i in range(len(want)):
        dic[want[i]] = number[i]
        
    for i in range(len(discount)-9):
        lis = discount[i:i+10]
        flag = True
        for j in want:
            if dic[j] != lis.count(j):
                flag=False
                break;
        if flag:
            answer += 1
                   
    return answer

counter 사용

from collections import Counter
def solution(want, number, discount):
   answer = 0
   dic = {}
   for i in range(len(want)):
       dic[want[i]] = number[i]

   for i in range(len(discount)-9):
       if dic == Counter(discount[i:i+10]): 
           answer += 1

   return answer

0개의 댓글