아무코딩

[백준 14888] 연산자 끼워넣기 본문

알고리즘/백준

[백준 14888] 연산자 끼워넣기

동 코 2020. 4. 28. 22:36

문제풀이

 

쉽다 next_permutation을 통해서 다 완탐해주면 된다.

 

소스코드

더보기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include <stdio.h>
#include <algorithm>
#include <vector>
#include <limits.h>
 
using namespace std;
 
int N;//수의 개수
int A[100];
int num_plus, num_minus, num_mul, num_div;
void combination();
vector<int> oper;
int max_sum=INT_MIN, min_sum=INT_MAX;
int main() {
    scanf("%d"&N);
    for (int i = 0; i < N; i++) {
        scanf("%d"&A[i]);
    }
    scanf("%d %d %d %d"&num_plus, &num_minus, &num_mul, &num_div);
    combination();
    printf("%d\n%d\n", max_sum, min_sum);
 
}
 
void combination() {
    int sum = 0;
    for (int i = 0; i < num_plus; i++)
        oper.push_back(1);
    for (int i = 0; i < num_minus; i++)
        oper.push_back(2);
    for (int i = 0; i < num_mul; i++)
        oper.push_back(3);
    for (int i = 0; i < num_div; i++)
        oper.push_back(4);
 
    sort(oper.begin(), oper.end());
 
    do {
        sum = A[0];
        for (int i = 0; i < oper.size(); i++) {
            switch (oper[i]) {
            case 1://+
                sum = sum + A[i + 1];
                break;
            case 2:
                sum = sum - A[i + 1];
                break;
            case 3:
                sum = sum * A[i + 1];
                break;
            case 4:
                sum = sum / A[i + 1];
                break;
            }
        }
        if (max_sum < sum)
            max_sum = sum;
        if (min_sum > sum)
            min_sum = sum;
    } while (next_permutation(oper.begin(), oper.end()));
}
 
 
 

문제 링크 : https://www.acmicpc.net/problem/14888

 

14888번: 연산자 끼워넣기

첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, 곱셈(×)의 개수, 나눗셈(÷)의 개수이다. 

www.acmicpc.net

 

'알고리즘 > 백준' 카테고리의 다른 글

[백준 2252] 줄세우기  (0) 2020.05.08
[백준 14499] 주사위 굴리기  (0) 2020.05.06
[백준 2573] 빙산  (0) 2020.04.27
[백준 11559] Puyo Puyo  (0) 2020.04.25
[백준 3190] 뱀  (0) 2020.04.22
Comments