상세 컨텐츠

본문 제목

[Programmers][Python] 할인 행사

공부

by 근성 2023. 12. 26. 16:53

본문

https://school.programmers.co.kr/learn/courses/30/lessons/131127?language=python3

 

프로그래머스

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

programmers.co.kr

 


이번 문제는 Counter를 이용해서 구현했다.

 

도출해야하는 결과 : 우리는 원하는 갯수의 식량을 모두 사야하고, 모두 살 수 있는 날짜수를 구해야한다.

 

 

1) want와 number의 인덱스를 활용해서 반복문을 통해 사야하는 물건의 종류와 갯수를 구했다.

    buy_list = []
    for i in range(len(number)):
        for j in range(number[i]):
            buy_list.append(want[i])
    buy_list_counter = Counter(buy_list)

 

2) 첫날부터 10번째 날까지의 배열을 인덱싱 후 Counter를 사용해서, 1)에서 만든 Counter와 같은 경우 answer의 값을 증가시켰다.

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

 

정답 코드

from collections import Counter
def solution(want, number, discount):
    answer = 0
    buy_list = []
    for i in range(len(number)):
        for j in range(number[i]):
            buy_list.append(want[i])
    buy_list_counter = Counter(buy_list)
    for i in range(len(discount) - 9):
        if buy_list_counter == Counter(discount[i:i+10]):
            answer += 1
    return answer

관련글 더보기

댓글 영역