programmers- lv.2 (할인 행사)

이예송·2023년 8월 3일

PS

목록 보기
76/97

문제링크: 할인 행사

✍🏻 Information

content
언어python
난이도⭐️⭐️
풀이시간8분
제출횟수1
인터넷검색유무no




🍒 My Code

def solution(want, number, discount):
    answer = 0
    for idx,i in enumerate(discount):
        if i in want:
            tmp = discount[idx:idx+10]
            tmp_num=[]
            for j in want:
                tmp_num.append(tmp.count(j))
            if tmp_num==number:
                answer+=1
    return answer




💡 What I learned

  • 딕셔너리를 사용한 풀이
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
  • counter: 컨테이너안의 데이터를 편리하고 빠르게 개수를 세도록 지원하는 계수기 도구
    • most_common(), subtract()등의 메소드를 사용할 수 있고 counter간의 덧셈(+), 뺄셈(-), 교집합(&), 합집합(|) 연산이 가능하다
    • 생성시 시간복잡도 O(n)

0개의 댓글