[적용한 알고리즘]

연산자 끼워넣기와 똑같다. 꽁문제 개이득ㅋ

 

[아이디어]

내용

 

[생각의 흐름 / 절차] 

내용

 

[교훈]

내용

 

<코드>

#include <cstdio>
#include <vector>
#include <queue>
#include <algorithm>
using namespace std;
int n;
vector<int> res;

void go(vector<int> &arr, int idx, int cur, int pl, int mi, int mul, int div){
    if (idx == n){
        res.push_back(cur);
        return;
    }

    if (pl > 0) go(arr, idx + 1, cur + arr[idx], pl - 1, mi, mul, div);
    if (mi > 0) go(arr, idx + 1, cur - arr[idx], pl, mi - 1, mul, div);
    if (mul > 0) go(arr, idx + 1, cur * arr[idx], pl, mi, mul - 1, div);
    if (div > 0) go(arr, idx + 1, cur / arr[idx], pl, mi, mul, div - 1);
}

int main(){
    scanf("%d", &n);
    vector<int> arr(n);
    for (int i = 0; i < n; i++){
        scanf("%d", &arr[i]);
    }

    int oper[4];
    for (int i = 0; i < 4; i++){
        scanf("%d", &oper[i]);
    }

    go(arr, 1, arr[0], oper[0], oper[1], oper[2], oper[3]);

    int ans_min = 1000000005;
    int ans_max = -1000000005;
    for (int x : res){
        ans_min = min(ans_min, x);
        ans_max = max(ans_max, x);
    }

    printf("%d\n%d", ans_max, ans_min);
    return 0;
}

'Algorithm > BOJ' 카테고리의 다른 글

[백준] 16197번 두 동전  (124) 2019.11.10
[백준] 14500번 테트리미노  (126) 2019.11.08
[백준] 14888번 연산자 끼워넣기  (124) 2019.11.08
[백준] 14225번 부분수열의 합  (0) 2019.11.08
[백준] 1182번 부분수열의 합  (0) 2019.11.08

+ Recent posts