[적용한 알고리즘]
연산자 끼워넣기와 똑같다. 꽁문제 개이득ㅋ
[아이디어]
내용
[생각의 흐름 / 절차]
내용
[교훈]
내용
<코드>
#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 |