코딩테스트/프로그래머스

[프로그래머스][스택] 할인 행사

박소민 2024. 6. 20. 12:07
할인 행사
 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

  • 내 풀이
    •  
from collections import deque
def solution(want, number, discount):
    answer = 0
    queue=deque()
    dic={}
    for w,n in zip(want,number):
        dic[w]=n
    
    
    for idx,dc in enumerate(discount):
        q=''
        if len(queue)>=10:
            q=queue.popleft()
        queue.append(dc)
        if q in list(dic.keys()):
            dic[q]+=1
        if dc in list(dic.keys()):
            dic[dc]-=1
            
        if len(set(dic.values()))==1 and list(dic.values())[0]==0:
            answer+=1
    
    return answer

 

 

  • 다른 사람 풀이
    • Counter 사용
    • 결과가 key: value(갯수) 형식으로 나오기 때문에 dic과 == 비교 가능
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