반응형
문제
https://school.programmers.co.kr/learn/courses/30/lessons/131127
풀이
원하는 제품의 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 |
반응형
'프로그래머스' 카테고리의 다른 글
프로그래머스 - 게임 맵 최단거리 (0) | 2024.04.15 |
---|---|
프로그래머스 - 신고 결과 받기 (0) | 2024.02.10 |
프로그래머스 - 완주하지 못한 선수 (0) | 2024.02.02 |
프로그래머스 - 다리를 지나는 트럭 (0) | 2024.02.02 |
프로그래머스 - 카드 뭉치 (0) | 2024.01.31 |