본문 바로가기
프로그래밍/알고리즘

프로그래머스 - 이모티콘 할인행사 파이썬

by 숙님 2023. 6. 22.
728x90

문제 

 

프로그래머스

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

programmers.co.kr

 

포인트

중요한 건 이모티콘 할인율이 10,20,30,40 중 하나로 결정된다는 점!

간과하면 급 막막해진다 

너무 귀여운 현식이

코드

from itertools import product

def solution(users, emoticons):
    answer = [-1, -1]  # 최대 판매 수와 최소 비용 초기화

    # 할인율 조합 생성
    for discounts in product([10, 20, 30, 40], repeat=len(emoticons)):
        sale_num = 0  # 판매 수
        cost_num = 0  # 비용

        # 각 사용자에 대해 계산
        for user in users:
            tmp = sum([emoticon * (1 - discount / 100) for discount, emoticon in zip(discounts, emoticons) if user[0] <= discount])
            if tmp >= user[1]:
                sale_num += 1
            else:
                cost_num += tmp

        # 최대 판매 수와 최소 비용 갱신
        if sale_num > answer[0] or (sale_num == answer[0] and cost_num > answer[1]):
            answer = [sale_num, cost_num]

    return answer

댓글