1, 2 번째 예제가 맞았는데 3번째 예제가 틀리다면 나눗셈 부분을 잘 처리해주었는지 확인해보세요.

c = int(input())
num_list = list(map(int, input().split()))
calc_list = list(map(int, input().split()))

def make_calc_dict(calc_list):
    calc_dict = dict()
    for i, c in enumerate(calc_list):
        calc_dict[i] = c
        
    return calc_dict

def calc(init_num, num, calc_num):
    if(calc_num == 0):
        return init_num + num
    elif(calc_num == 1):
        return init_num - num
    elif(calc_num == 2):
        return init_num * num
    elif(calc_num == 3):
        if(init_num < 0):
            return -(-init_num // num)
        else:
            return init_num // num
    
calc_dict = make_calc_dict(calc_list)

result_list = []
def solve(num_list, calc_dict):
    print(num_list, calc_dict)
    if(len(num_list) == 1):
        print('end')
        result_list.append(num_list[0])
        return 0
    else:
        # 계산에 사용 될 수
        init_num = num_list.pop(0)
        temp_num = num_list[0]
        
        # 백트래킹
        for key, value in calc_dict.items():
            # 0이면 다음 경우로
            if(value == 0):
                continue
            else:
                # 해당 계산을 수행
                num = calc(init_num, temp_num, key)
                calc_dict[key] = calc_dict[key] - 1
                
                if(len(num_list) == 0):
                    deliver_list = [num]
                else:
                    deliver_list = [num] + num_list[1:]
                solve(deliver_list, calc_dict)
                calc_dict[key] = calc_dict[key] + 1

solve(num_list, calc_dict)
print(max(result_list))
print(min(result_list))

'# 코딩 문제 관련 > 파이썬' 카테고리의 다른 글

백준 12865번(python)  (0) 2020.01.02
백준 14889번(python)  (0) 2020.01.02
백준 2580번(python)  (0) 2020.01.01
백준 9963번(python)  (0) 2019.12.31
백준 15652번(python)  (0) 2019.12.31