https://school.programmers.co.kr/learn/courses/30/lessons/131127
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
def solution(want, number, discount):
answer = 0
dic1 = {}
#정현이가 원하는 제품별 수량
for i in range(len(number)):
dic1[want[i]] = number[i]
#10일간 할인하는 제품별 수량
for i in range(0, len(discount)-9):
dic2 = {}
for j in range(i, i+10):
if discount[j] in dic2:
dic2[discount[j]] += 1
else:
dic2[discount[j]] = 1
if dic1 == dic2:
answer += 1
return answer
딕셔너리 2개를 이용해서 풀었다.
dic1은 정현이가 원하는 제품별 수량을 저장했고, dic은 할인받을 수 있는 10일간 제품별 수량을 저장하도록 했다.
두 딕셔너리가 같은 날짜를 세는 방식이다.
다른 사람의 풀이를 보면 딕셔너리를 하나만 선언하고, 10일치 제품별 수량은 Counter 함수를 사용해 비교하는 방식으로 풀었다.
이중 for문 구조보다 더 좋은 방법인 것 같다.
'코딩테스트 > Python' 카테고리의 다른 글
| [프로그래머스][파이썬] 기능개발 (1) | 2023.12.11 |
|---|---|
| [프로그래머스][파이썬] 캐시 (1) | 2023.12.08 |
| [프로그래머스][파이썬] n^2 배열 자르기 (0) | 2023.12.06 |
| [프로그래머스][파이썬] 괄호 회전하기 (1) | 2023.12.06 |
| [프로그래머스][파이썬] 연속 부분 수열 합의 개수 (2) | 2023.12.05 |