YWC
백준/14888/연산자 끼워넣기/C 본문
https://www.acmicpc.net/problem/14888
14888번: 연산자 끼워넣기
첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수,
www.acmicpc.net
1) c
#include <stdio.h>
#include <stdlib.h>
#pragma warning(disable:4996)
int n,a,b,c,d;
int res_min = 1000000001;
int res_max = -1000000001;
int arr[12];
void dfs(int op1, int op2, int op3, int op4, int number, int res) {
if (number == n - 1) {
if (res > res_max) { res_max = res; }
if (res < res_min) { res_min = res; }
}
if (op1 > 0) { dfs(op1 - 1, op2, op3, op4, number + 1, res + arr[number + 1]); }
if (op2 > 0) { dfs(op1, op2-1, op3, op4, number + 1, res - arr[number + 1]); }
if (op3 > 0) { dfs(op1, op2, op3-1, op4, number + 1, res * arr[number + 1]); }
if (op4 > 0) { dfs(op1, op2, op3, op4-1, number + 1, res / arr[number + 1]); }
}
int main(void) {
scanf("%d", &n);
for (int i = 0; i < n; i++) { scanf("%d", &arr[i]); }
scanf("%d %d %d %d", &a, &b, &c, &d);
dfs(a, b, c, d, 0, arr[0]);
printf("%d\n%d", res_max, res_min);
return 0;
}
'공부 > 코테_문제풀이' 카테고리의 다른 글
백준/14891/톱니바퀴/C (0) | 2023.04.08 |
---|---|
백준/14889/스타트와 링크/C (0) | 2023.04.08 |
백준/13458/시험감독/C (0) | 2023.04.07 |
백준/17406/배열 돌리기 4/C (0) | 2023.04.06 |
백준/16637/괄호추가하기/C (0) | 2023.04.05 |