본문 바로가기

알고리즘/백준 ~ 단계별 풀어보기

[다시 풀어보기] 백준 14888번 "연산자 끼워넣기"

파이썬

import sys

n = int(sys.stdin.readline().rstrip())
nums = list(map(int, sys.stdin.readline().split()))

a, s, m, d = map(int, sys.stdin.readline().split())

minmaxList= []

def dfs(i, num):
    global a, s, m, d, minmaxList
    if i == n:
        minmaxList.append(num)
        return                
    
    if a > 0 :
        a -= 1
        dfs(i+1, num +nums[i])
        a += 1
        
    if s > 0 :
        s -= 1
        dfs(i+1, num - nums[i])
        s += 1
        
    if m > 0 :
        m -= 1
        dfs(i+1, num * nums[i])
        m += 1
        
    if d > 0 :
        d -= 1
        dfs(i+1, int(num / nums[i]))
        d += 1
        
dfs(1, nums[0])
print(max(minmaxList))
print(min(minmaxList))

 

참고 :

https://data-flower.tistory.com/72

 

[백준 14888번] 연산자 끼워넣기 - 파이썬

문제 링크: https://www.acmicpc.net/problem/14888 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-..

data-flower.tistory.com

 

'알고리즘 > 백준 ~ 단계별 풀어보기' 카테고리의 다른 글

[다시 풀어보기] 백준 9663번 "N-Queen"  (0) 2022.08.15
백준 15652번 "N과 M (4)"  (0) 2022.08.15
백준 15651번 "N과 M(3)"  (0) 2022.08.15
백준 15650 "N과 M (2)"  (0) 2022.08.15
백준 15649번 "N과 M"  (0) 2022.08.15