최종 제출 코드
n = int(input())
array = list(map(int, input().split()))
sign = list(map(int, input().split()))
max_value = -1e9
min_value = 1e9
def dfs(index, value, plus, minus, multiple, divide):
global max_value, min_value
if index == n-1:
max_value = max(max_value, value)
min_value = min(min_value, value)
return
if plus:
dfs(index+1, value+array[index+1], plus-1, minus, multiple, divide)
if minus:
dfs(index+1, value-array[index+1], plus, minus-1, multiple, divide)
if multiple:
dfs(index+1, value*array[index+1], plus, minus, multiple-1, divide)
if divide:
dfs(index+1, int(value/array[index+1]), plus, minus, multiple, divide-1)
dfs(0, array[0], sign[0], sign[1], sign[2], sign[3])
print(max_value)
print(min_value)
◼️ 문제는 다르나 풀이는 연산자 끼워넣기 문제와 동일
피연산자 개수-1 보다 크지만 어차피 index == n-1 조건문을 통해 필요한 만큼만 연산을 함으로 별다른 수정은 필요없다