-
14888번: 연산자 끼워넣기
첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수,
www.acmicpc.net
코드
n = int(input()) num_list = list(map(int, input().split())) operate_list = list(map(int, input().split())) def operate_list_dict(operate_list): dictionaly = dict() for key, value in enumerate(operate_list): dictionaly[key] = value return dictionaly def num_calculate(init_num,after_num,key): if key == 0: return init_num + after_num elif key == 1: return init_num - after_num elif key == 2: return init_num * after_num elif key == 3: if init_num < 0: init_num = -1 * init_num return (init_num//after_num) * -1 else: return (init_num//after_num) diction = operate_list_dict(operate_list) arr = [] def main_calculate(num_list, diction): if len(num_list) == 1: arr.append(num_list[0]) return else: init_number = num_list.pop(0) after_number = num_list[0] for key, value in diction.items(): if value == 0: continue num = num_calculate(init_number, after_number, key) diction[key] = diction[key] -1 deliver_list = [num] + num_list[1:] main_calculate(deliver_list,diction) diction[key] = diction[key] +1 main_calculate(num_list, diction) print(max(arr)) print(min(arr))
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 11047번 동전 0 (파이썬) (0) 2021.12.29 [백준] 14889번 스타트와 링크 (파이썬) (0) 2021.12.29 [백준] 2580번 스도쿠 (파이썬) (0) 2021.12.29 [백준] 9663번 N-Queen (파이썬) (0) 2021.12.29 [백준] 15652번 N과 M (4) (파이썬) (0) 2021.12.29