코딩,안되면 될때까지

14888-연산자 끼워넣기 본문

백준/백준-파이썬

14888-연산자 끼워넣기

soo97 2022. 2. 26. 13:37
728x90
반응형

<문제>

https://www.acmicpc.net/problem/14888

 

14888번: 연산자 끼워넣기

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

www.acmicpc.net

 

 

 

<코드>

-파이썬-

from itertools import product

n = int(input())
number = list(map(int,input().split()))
add,sub,mul,div = map(int,input().split())


#최솟값과 최댓값 초기화
min_value = 1e9
max_value = -1e9

#깊이 우선 탐색(DFS) 메서드

def dfs(i,now):
  global min_value,max_value,add,sub,mul,div
  #모든 연산자를 다 사용한 경우 최솟값과 최댓값 업데이트
  if i == n:
    min_value = min(min_value,now)
    max_value = max(max_value,now)
   
  
  else:
    #각 연산자에 대해 재귀적으로 수행
    if add>0:
      add-=1
      dfs(i+1,now+number[i])
      add+=1
      print(add)
    if sub>0:
      sub-=1
      dfs(i+1,now-number[i])
      sub+=1
    if mul>0:
      mul-=1
      dfs(i+1,now*number[i])
      mul+=1
      print(mul)
      
     
    if div>0:
      div-=1
      dfs(i+1,int(now/number[i]))
      div+=1


dfs(1,number[0])
print(min_value)
print(max_value)
728x90
반응형

'백준 > 백준-파이썬' 카테고리의 다른 글

1260-DFS와 BFS  (2) 2022.03.03
1715-카드 정렬하기  (0) 2022.03.01
18428-감시피하기  (0) 2022.02.26
16234-인구이동  (0) 2022.02.25
1931-회의실 배정  (0) 2022.01.27
Comments