discount_per = [10, 20, 30, 40]
temp_per = []
temp_answer = [0, 0]
def get_answer(subs, emoticons, select):
temp_subs, temp_sales, temp_sum = 0, 0, 0
for sub in subs:
for i in range(len(emoticons)):
# 정한 할인율보다 크면 구매
if sub[0] <= select[i]:
temp_sales += emoticons[i] * (100 - select[i]) / 100
# 자기가 정한 금액 이상이면 구독
if temp_sales >= sub[1]:
temp_subs += 1
temp_sales = 0
else:
temp_sum += temp_sales
temp_sales = 0
return temp_subs, temp_sum
def dfs(subs, emoticons, select, depth):
# 할인율 정하기
if (depth == len(select)):
temp_subs, temp_sum = get_answer(subs, emoticons, select)
# 1. 서비스 가입자 최대
if (temp_subs > temp_answer[0]):
temp_answer = [temp_subs, temp_sum]
# 2. 판매액 최대
elif (temp_subs == temp_answer[0]):
if (temp_sum >= temp_answer[1]):
temp_answer = [temp_subs, temp_sum]
return
for per in discount_per:
select[depth] = per
dfs(subs, emoticons, select, depth+1)
select[depth] = 0
def solution(subs, emoticons):
dfs(subs, emoticons, [0] * len(emoticons), 0)
answer = temp_answer
return answer
🔹 파이썬 전역변수
global 로 선언하고, 다시 정의해야함.
def myFunc():
global myVar1
global myVar2
myVar1 = "Not easy"
myVar2 = "To use
def main():
global myVar1
global myVar2
myVar1 = "To Create"
myVar2 = "Global variables
myFunc()
=> 리스트로 선언해서 사용
myVarList = []
def myFunc():
myVar1 = "So easy"
myVar2 = "To use"
myVarList = [myVar1, myVar2]
def main():
myFunc()
더 좋은 방법이 있을까...?
🔹itertools의 product 라이브러리
from itertools import product
def myFunc():
select = product([10, 20, 30, 40], repeat=len(emoticons))