Bomb Kirby Running
Cat Life - GT-K
14888번 연산자 끼워넣기

2023. 4. 4. 09:05BaekJoon

단계별로 풀어보기 - 백트래킹- 7단계

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

#include <iostream>
using namespace std;
int N;
int operators[4];
int num[11];
int Min=1000000001;
int Max=-1000000001;

void check(int result,int key)
{
    if(key==N)
    {
        if(result>Max)
        {
            Max=result;
        }
        if(result<Min)
        {
            Min=result;
        }
        return;
    }
    
    for(int i=0;i<4;i++)
    {
        if(operators[i]>0)
        {
            operators[i]--;
            if(i==0)
            {
                check(result+num[key],key+1);
            }
            
            else if(i==1)
            {
                check(result-num[key],key+1);
            }
            
            else if(i==2)
            {
                check(result*num[key],key+1);
            }
            
            else
            {
                check(result/num[key],key+1);
            }            
            operators[i]++;
        }
    }    
}

int main()
{
    cin>>N;
    for(int i=0;i<N;i++)
    {
		cin>>num[i];
	}

	for(int i=0;i<4;i++)
    {
		cin>>operators[i];
	}	
	check(num[0],1);
	cout<<Max<<"\n";
	cout<<Min;
    
    return 0;
}

'BaekJoon' 카테고리의 다른 글

14889번 스타트와 링크  (0) 2023.04.04
2580번 스도쿠  (0) 2023.04.04
9663번 N-Queen  (0) 2023.04.04
15652번 N과 M (4)  (0) 2023.04.04
15651번 N과 M (3)  (0) 2023.04.04