728x90
from itertools import permutations
N = int(input())
num = list(map(int,input().split())) #숫자들
cal = list(map(int,input().split())) #연산자 갯수
sym = []
for i in range (0,4):
for j in range (0,cal[i]):
if i == 0:
sym.append("+")
elif i == 1:
sym.append("-")
elif i == 2:
sym.append("*")
elif i == 3:
sym.append("//")
#A가 결국은 연산자 순서를 나타나게 될 것이다.
number = [i for i in range (0,N-1)]
A = list(permutations(number,N-1))
minimum = 1e10
maximum = -1e10
for a in A:
t = num[0]
for i in range (0,N-1):
if sym[a[i]] == "+":
t += num[i+1]
elif sym[a[i]] == "-":
t -= num[i+1]
elif sym[a[i]] == "*":
t *= num[i+1]
elif sym[a[i]] == "//":
t = int(t / num[i+1])
minimum = min(minimum, t)
maximum = max(maximum, t)
print(maximum, minimum)
이 코드를 짜면서 문제인 부분은, 답이 1e9가 나왔을때 출력이 10000..... 0.000... 으로 실수형으로 나온다는 점에 제대로 착안해야한다는 점이다.
이 부분을 피하기 위해서, 초기 셋팅을 1e10과 -1e10 등으로 변경하는 것이 주효하였다.
'코딩' 카테고리의 다른 글
[BOJ] 백준 14503 로봇 청소기 python (0) | 2024.04.12 |
---|---|
[BOJ] 백준 15683 감시 python (0) | 2024.04.10 |
[BOJ] 16236 아기상어 python (0) | 2024.04.09 |
[BOJ, 백준] 14499 주사위 굴리기 Python (1) | 2024.04.08 |
[BOJ] 백준 23848 등비수열의 합 python (0) | 2024.03.31 |