프로그래머스

프로그래머스 - 할인 행사

yanJuicy 2024. 2. 6. 22:07
반응형

문제

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

 

프로그래머스

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

programmers.co.kr

 

 

 

풀이

원하는 제품의 dictionary를 만들고 10일간 할인하는 제품의 dictionary를 만들어서 두 dictionary를 비교해 답을 구한다.

dictionary는 {제품 명: 제품 갯수}로 한다.

날이 바뀌면 10일간 할인하는 제품의 dictionary 내부 값을 바꿔야 한다.

둘째 날이 되면 discount[0]에 해당하는 키에 값을 -1 해주고, discount[10]에 해당하는 키에 값을 + 1 해주면 된다.

셋째 날이 되면 discount[1]에 해당하는 키에 값을 -1 해주고, discount[11]에 해당하는 키에 값을 + 1 해주면 된다.

이런식으로 discount의 총 길이 만큼 해주고 날이 바뀔 때마다 원하는 제품 dictionary와 같은지 비교하면 된다.

 

 

 

코드

python

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
def solution(want, number, discount):
    answer = 0
    
    want_dic = {}
    for i in range(len(want)):
        want_dic[want[i]] = number[i]
    
    discount_dic = {}
    for i in range(len(discount)):
        if discount[i] in discount_dic:
            discount_dic[discount[i]] += 1
        else:
            discount_dic[discount[i]] = 1
            
        if i >= 9:
            if want_dic == discount_dic:
                answer += 1
            discount_dic[discount[i - 9]] -= 1
            if discount_dic[discount[i - 9]] == 0:
                del discount_dic[discount[i - 9]]
            
            
    return answer
cs

 

반응형