파이썬
import sys
n = int(sys.stdin.readline().rstrip())
nums = list(map(int, sys.stdin.readline().split()))
a, s, m, d = map(int, sys.stdin.readline().split())
minmaxList= []
def dfs(i, num):
global a, s, m, d, minmaxList
if i == n:
minmaxList.append(num)
return
if a > 0 :
a -= 1
dfs(i+1, num +nums[i])
a += 1
if s > 0 :
s -= 1
dfs(i+1, num - nums[i])
s += 1
if m > 0 :
m -= 1
dfs(i+1, num * nums[i])
m += 1
if d > 0 :
d -= 1
dfs(i+1, int(num / nums[i]))
d += 1
dfs(1, nums[0])
print(max(minmaxList))
print(min(minmaxList))
참고 :
https://data-flower.tistory.com/72
'알고리즘 > 백준 ~ 단계별 풀어보기' 카테고리의 다른 글
[다시 풀어보기] 백준 9663번 "N-Queen" (0) | 2022.08.15 |
---|---|
백준 15652번 "N과 M (4)" (0) | 2022.08.15 |
백준 15651번 "N과 M(3)" (0) | 2022.08.15 |
백준 15650 "N과 M (2)" (0) | 2022.08.15 |
백준 15649번 "N과 M" (0) | 2022.08.15 |