백준14888(파이썬) - 연산자 끼워넣기

resilient

·

2021. 5. 2. 00:17

728x90
반응형

www.acmicpc.net/problem/14888

 

14888번: 연산자 끼워넣기

첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, 

www.acmicpc.net

import sys
from collections import deque
input = sys.stdin.readline
n = int(input())
numbers = list(map(int,input().split()))
plus, minus, mul, div = map(int,input().split())
ans = []
def dfs(plus,minus,mul,div,cnt,total):
    if cnt == n-1:
        ans.append(total)
    if plus>0:
        dfs(plus-1,minus,mul,div,cnt+1,total+numbers[cnt+1])
    if minus>0:
        dfs(plus,minus-1,mul,div,cnt+1,total-numbers[cnt+1])
    if mul>0:
        dfs(plus,minus,mul-1,div,cnt+1,total*numbers[cnt+1])
    if div>0:
        dfs(plus,minus,mul,div-1,cnt+1,int(total/numbers[cnt+1])) #나눗셈할때 -를
    
dfs(plus,minus,mul,div,0,numbers[0])
print(max(ans))
print(min(ans))
반응형