코테/BOJ
백준 14888 [연산자 끼워넣기] 파이썬
동 캄
2025. 3. 5. 18:56
반응형
https://www.acmicpc.net/problem/14888
# 백준 14888 연산자 끼워넣기
N=int(input()) #총 숫자 갯수
numbers=list(map(int,input().split())) #숫자 배열 저장
opers=list(map(int,input().split())) #연산자 배열 저장
max_ans=-10**9-1 #최댓값 저장
min_ans=10**9+1 #최솟값 저장
def calcul(val,cnt):
global max_ans
global min_ans
if cnt==N: #연산자 배치가 완료되면
if val>max_ans:
max_ans=val
if val<min_ans:
min_ans=val
if opers[0]: #연산자 더하기를 할 수 있는 경우
val+=numbers[cnt]
opers[0]-=1
calcul(val,cnt+1)
opers[0]+=1
val-=numbers[cnt]
if opers[1]: #연산자 빼기를 할 수 있는 경우
val-=numbers[cnt]
opers[1]-=1
calcul(val,cnt+1)
opers[1]+=1
val+=numbers[cnt]
if opers[2]: #연산자 곱하기를 할 수 있는 경우
val*=numbers[cnt]
opers[2]-=1
calcul(val,cnt+1)
opers[2]+=1
val//=numbers[cnt]
if opers[3]: #연산자 나누기를 할 수 있는 경우
temp=val
if val<0:
val=-((-val)//numbers[cnt])
else:
val//=numbers[cnt]
opers[3]-=1
calcul(val,cnt+1)
opers[3]+=1
val=temp
start_num=numbers[0] #시작 값 설정
calcul(start_num,1)
print(max_ans)
print(min_ans)
반응형