"""
1. 아이디어
- 연산자의 갯수만큼 재귀함수 호출
2. 시간복잡도
- N!
3. 자료구조
- n개의 자연수 저장 : []
- 연산자 저장 : []
"""
import sys
n = int(input())
value = list(map(int, input().split()))
calc = list(map(int, input().split()))
maxValue = -(sys.maxsize)
minValue = sys.maxsize
sum = value[0]
# 재귀함수 정의
def recur( index, sum, plus, minus, multi, div ):
global maxValue, minValue
# n개의 자연수가 조합되었다면( 연산자를 다 조합했다면 )
if index == n:
maxValue = max( maxValue, sum )
minValue = min( minValue, sum )
return
if plus > 0:
recur( index + 1, sum + value[index], plus-1, minus, multi, div )
if minus > 0:
recur( index + 1, sum - value[index], plus, minus-1, multi, div )
if multi > 0:
recur( index + 1, sum * value[index], plus, minus, multi-1, div )
if div > 0:
if sum >= 0:
recur( index + 1, sum // value[index], plus, minus, multi, div-1 )
elif sum < 0:
recur( index + 1, -(-sum // value[index]), plus, minus, multi, div-1 )
# 초기, 재귀함수 호출
recur( 1, sum, calc[0], calc[1], calc[2], calc[3] )
print( maxValue )
print( minValue )
'Algorithm' 카테고리의 다른 글
[BaekJoon] 백준 알고리즘 1260번 / DFS와 BFS / Python (0) | 2023.03.03 |
---|---|
[BaekJoon] 백준 알고리즘 14503번 / 로봇 청소기 / 시뮬레이션 / Python (0) | 2023.03.02 |
[BaekJoon] 백준 알고리즘 15649번 / N과 M(1)/ 백트래킹 / Python (0) | 2023.02.28 |
[BaekJoon] 백준 알고리즘 1926번 / 그림 / BFS / Python (0) | 2023.02.27 |
[BaekJoon] 백준 알고리즘 2839번 / 설탕 배달 (0) | 2023.02.24 |