Q1) 문제를 어떻게 이해했나요?
A1) 모든 할인율 조합에 대해 시뮬레이션을 수행하고, 각 조합에 대해 이모티콘 플러스 가입자 수와 판매액을 계산한 후,
가입자 수 우선 → 판매액 기준으로 최적 결과를 찾는 완전탐색(Brute Force) 유형입니다.
Q2) 문제를 어떻게 풀 예정인가요?
A2) 이 문제는 가능한 할인율 조합이 매우 적기 때문에 완전탐색으로도 충분히 풀 수 있습니다.
이모티콘이 최대 7개, 각 이모티콘마다 선택할 수 있는 할인율이 4가지(10,20,30,40)이므로
총 경우의 수는 4⁷ = 16,384가지로, 계산량이 많지 않습니다.
1. 가능한 모든 할인율 조합 생성
2. 각 할인 조합에 대해 사용자별 행동 시뮬레이션
3. 조합별로 가입자 수와 판매액을 계산
💡 최적의 코드
from itertools import product
def solution(users, emoticons):
discount_rates = [10, 20, 30, 40]
best = [0, 0] # [가입자 수, 매출액]
# 모든 할인율 조합을 생성
for discounts in product(discount_rates, repeat=len(emoticons)):
plus_members = 0
sales = 0
# 각 유저에 대해 시뮬레이션
for ratio, price_limit in users:
total = 0
for i in range(len(emoticons)):
if discounts[i] >= ratio: # 유저 기준 이상 할인된 이모티콘만 구매
discounted_price = emoticons[i] * (100 - discounts[i]) // 100
total += discounted_price
# 기준 초과하면 이모티콘 플러스 가입
if total >= price_limit:
plus_members += 1
else:
sales += total
# 우선순위: 가입자 수 > 판매액
if plus_members > best[0]:
best = [plus_members, sales]
elif plus_members == best[0] and sales > best[1]:
best = [plus_members, sales]
return best
[추천 강의✨]
38군데 합격 비법, 2025 코딩테스트 필수 알고리즘| 딩코딩코 - 인프런 강의
현재 평점 5.0점 수강생 2,019명인 강의를 만나보세요. 초보자도 쉽게 이해하는 단계별 설명으로, 막연했던 코딩 테스트가 명확해집니다. 필요한 것만 배우고 바로 실전에 적용하세요! 알고리즘,
www.inflearn.com
6주 완성! 백엔드 이력서 차별화 전략 4가지 - 똑같은 이력서 속에서 돋보이는 법| 딩코딩코 - 인
현재 평점 5.0점 수강생 457명인 강의를 만나보세요. 모든 이력서가 비슷해 보이는 세상, ‘차별화’가 합격을 만듭니다. 6주간, 백엔드 실무자가 직접 전하는 실전 이력서 전략 4가지를 배우세요.
www.inflearn.com
728x90
반응형
'Algorithm' 카테고리의 다른 글
[카카오 코테 2020 | python] 키패드 누르기 (0) | 2025.07.04 |
---|---|
[프로그래머스 DP | python] 도둑질 🔥 (0) | 2025.07.01 |
[카카오 코테 2020 | python] 문자열 압축 ✅ (0) | 2025.06.27 |
[카카오 코테 2022 | python] 두 큐 합 같게 만들기 (0) | 2025.06.25 |
[카카오 코테 2018 | python] [1차] 프렌즈4블록 (0) | 2025.06.25 |