[BOJ] 14888번 연산자 끼워넣기 (Python)

천호영·2022년 4월 10일
0

알고리즘

목록 보기
8/100
post-thumbnail
import sys,itertools
input = sys.stdin.readline

N = int(input())

nums = list(map(int,input().split()))
plus,minus,multiply,divide = map(int,input().split())
operators = []

for _ in range(plus):
  operators.append('+')
for _ in range(minus):
  operators.append('-')
for _ in range(multiply):
  operators.append('*')
for _ in range(divide):
  operators.append('//')

max_num = -sys.maxsize
min_num = sys.maxsize
operator_permutation = list(itertools.permutations(operators))
for now_operators in operator_permutation:
  now_num = nums[0]
  for i in range(0,len(now_operators)):
    operator = now_operators[i]
    operate_target_num = nums[i+1]
    if operator =='//':
      now_num = int(now_num/operate_target_num)
    elif operator == '+':
      now_num += operate_target_num
    elif operator == '-':
      now_num -= operate_target_num
    else:
      now_num *= operate_target_num
      
  if max_num < now_num:
    max_num = now_num
  if min_num > now_num:
    min_num = now_num

print(max_num)
print(min_num)
profile
성장!

0개의 댓글