오늘의 문제: 프로그래머스 이모티콘 할인
문제 설명
https://school.programmers.co.kr/learn/courses/30/lessons/150368
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제 풀이
1. [10, 20, 30, 40] 할인율을 이모티콘 수에 따른 모든 경우의 수 구하기
2. 1번에서 구한 할인율 경우의 수 완전탐색으로 탐색하면서 2가지 조건(1. 이모티콘 플러스 서비스 가입자를 최대한 늘리는 것, 2. 이모티콘 판매액을 최대한 늘리는 것)에 맞는 할인율 경우의 수 구하기
from copy import deepcopy
comb = []
def dfs(discount, length, dis_list):
global comb
if len(dis_list) == length:
comb.append(dis_list)
return
for dis in discount:
copy_list = deepcopy(dis_list)
copy_list.append(dis)
dfs(discount, length, copy_list)
def solution(users, emoticons):
global comb
length = len(emoticons)
discount = [10, 20, 30, 40]
dis_list = []
dfs(discount, length, dis_list)
answer = [0, 0]
for dis_comb in comb:
result = [0, 0]
for user in users:
check = user[0]
plus = user[1]
cost = 0
for i in range(length):
if dis_comb[i] >= check:
cost += (emoticons[i] *((100-dis_comb[i])/100))
if cost >= plus:
result[0] += 1
cost = 0
else:
result[1] += cost
if answer[0] < result[0]:
answer[0] = result[0]
answer[1] = result[1]
elif answer[0] == result[0]:
if answer[1] < result[1]:
answer[1] = result[1]
return answer
'99클럽 코테 스터디' 카테고리의 다른 글
99클럽 코테 스터디 31일차 (BOJ 5972 택배 배송) (0) | 2024.11.27 |
---|---|
99클럽 코테 스터디 29일차 (BOJ 11657 타임머신) (0) | 2024.11.25 |
99클럽 코테 스터디 27일차 (BOJ 1446 지름길) (0) | 2024.11.23 |
99클럽 코테 스터디 24일차 (BOJ 2437 저울) (0) | 2024.11.20 |
99클럽 코테 스터디 23일차 (BOJ 15686 치킨배달) (0) | 2024.11.20 |