티스토리 뷰

Algorithm/BOJ

14888 연산자 끼워넣기

henry1214 2018. 4. 9. 15:21

https://www.acmicpc.net/problem/14888



숫자 사이에 들어갈 수 있는 연산자의 모든 경우의 수를 넣어본다.



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
#include <cstdio>
#include <vector>
#include <algorithm>
#include <climits>
using namespace std;
 
int n,a[11],t,MAX=INT_MIN,MIN=INT_MAX;
vector<int> op; // 0:덧셈 1:뺄셈 2:곱셈 3:나눗셈
 
int main()
{
    scanf("%d",&n);
    for(int i=0;i<n;i++)
        scanf("%d",&a[i]);
    for(int i=0;i<4;i++)
    {
        scanf("%d",&t);
        while(t--) op.push_back(i);
    }
 
    do
    {
        int sum=a[0];
        for(int i=0;i<n-1;i++)
        {
            if(op[i]==0) sum+=a[i+1];
            else if(op[i]==1) sum-=a[i+1];
            else if(op[i]==2) sum*=a[i+1];
            else if(op[i]==3) sum/=a[i+1];
        }
        MAX=max(MAX,sum);
        MIN=min(MIN,sum);
    } while(next_permutation(op.begin(),op.end()));
 
    printf("%d\n%d\n",MAX,MIN);
 
    return 0;
}
cs


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

14890 경사로  (0) 2018.04.09
14889 스타트와 링크  (0) 2018.04.09
14503 로봇 청소기  (0) 2018.04.09
14502 연구소  (0) 2018.04.09
14501 퇴사  (0) 2018.04.06
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday