14888 - 연산자 끼워넣기

2022. 5. 3. 13:582022/BaekJoon_삼성 SW 역량 테스트 기출

def dfs(idx, curNum):
    global max_value, min_value, N, num, add, sub, mul, div, temp
    if idx == N-1:
        max_value = max(max_value, curNum)
        min_value = min(min_value, curNum) 
    
    else:
        idx += 1
        if add>0:
            add -= 1
            dfs(idx, curNum+num[idx])
            add += 1

        if sub>0:
            sub -= 1
            dfs(idx, curNum-num[idx])
            sub += 1

        if mul>0:
            mul -= 1
            dfs(idx, curNum*num[idx])
            mul += 1

        if div>0:
            div -= 1
            nxtNum = num[idx]
            if curNum < 0:
                curNum = -((-curNum)//nxtNum)
            else:
                curNum = (curNum//nxtNum)
            dfs(idx,int(curNum))
            div += 1
            
N = int(input())
num = list(map(int, input().split()))
add, sub, mul, div = map(int, input().split())
max_value = -100000000
min_value = 100000000
temp = []
        
dfs(0, num[0])

print(max_value)
print(min_value)

'2022 > BaekJoon_삼성 SW 역량 테스트 기출' 카테고리의 다른 글

14890 - 경사로*  (0) 2022.05.03
14889 - 스타트와 링크*  (0) 2022.05.03
14503 - 로봇청소기*  (0) 2022.05.03
14502 - 연구소*  (0) 2022.05.03
14501 - 퇴사*  (0) 2022.05.03