Search
Duplicate

이모티콘 할인행사

문제 설명 및 제한사항

아이디어 및 해결 방법

코드

import itertools def solution(users, emoticons): n_user, n_emo = len(users), len(emoticons) max_sub, max_sales = 0, 0 for rates in itertools.product([10, 20, 30, 40], repeat=n_emo): curr_sub, curr_sales = 0, 0 # 각 사용자의 할인율 임계값과 구매 비용의 임계값을 순회하면서 for rate_threshold, total_threshold in users: # 이모티콘 구매 비용을 우선 구합니다. total = 0 for r, emo in zip(rates, emoticons): if r >= rate_threshold: total += int(emo - emo * (r / 100)) # 임계값 이상 사용 시 이모티콘 구매는 취소하고, 구독합니다. if total >= total_threshold: curr_sub += 1 # 그렇지 않다면 판매액을 업데이트 합니다. else: curr_sales += total # 이 할인율 조합이 이전 조합보다 좋은지 판단합니다. if curr_sub > max_sub: max_sub, max_sales = curr_sub, curr_sales elif curr_sub == max_sub and curr_sales > max_sales: max_sales = curr_sales return max_sub, max_sales
Python
복사

출처

프로그래머스 코딩테스트 연습 https://school.programmers.co.kr/learn/challenges