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 |