- 연산자 개수만큼 리스트에 넣어준다
- permutation으로 순열을 만든다
- 중복된 것들을 set으로 제거
- 계산
import sys
from itertools import permutations
N = int(input())
num_list = list(map(int, input().split()))
opperand_input = list(map(int, input().split()))
opperand_list = []
opperand_list.extend(['+']*opperand_input[0])
opperand_list.extend(['-']*opperand_input[1])
opperand_list.extend(['x']*opperand_input[2])
opperand_list.extend(['/']*opperand_input[3])
opperand_comb = set(permutations(opperand_list))
_min = 100000000
_max = -100000000
for o in opperand_comb:
result = num_list[0]
for i in range(len(num_list)-1):
if o[i] == '+':
result += num_list[i+1]
elif o[i] == '-':
result -= num_list[i+1]
elif o[i] == 'x':
result *= num_list[i+1]
elif o[i] == '/':
if result < 0:
result = -1*((-1 * result) // num_list[i+1])
else:
result //= num_list[i+1]
_min = min(result, _min)
_max = max(result, _max)
print(_max)
print(_min)
'개발 > 알고리즘' 카테고리의 다른 글
[백준 11723] 집합 (python) (0) | 2021.03.18 |
---|---|
[백준 1541] 잃어버린 괄호 (python) (0) | 2021.03.18 |
[백준 1074] Z (python) (0) | 2021.03.17 |
[백준 17144] 미세먼지 안녕! (python) (0) | 2021.03.17 |
[백준 14891] 톱니바퀴 (python) (0) | 2021.03.16 |
최근댓글