🏷 문제


💡 코드
n = int(input())
num_list = list(map(int, input().split()))
add, sub, mul, div = map(int, input().split())
max_res, min_res = -1e9, 1e9
def cal(idx, res, add, sub, mul, div):
global n, num_list, max_res, min_res
if idx == n:
max_res = max(max_res, res)
min_res = min(min_res, res)
return
if add:
cal(idx+1, res + num_list[idx], add-1, sub, mul, div)
if sub:
cal(idx+1, res - num_list[idx], add, sub-1, mul, div)
if mul:
cal(idx+1, res * num_list[idx], add, sub, mul-1, div)
if div:
if res < 0:
cal(idx+1, -((-res) // num_list[idx]), add, sub, mul, div-1)
else:
cal(idx+1, res // num_list[idx], add, sub, mul, div-1)
cal(1, num_list[0], add, sub, mul, div)
print(max_res)
print(min_res)
🔑