728x90
1. 문제 설명
14888번 연산자 끼워넣기와 동일한 문제이다.
다만 연산자의 개수가 증가하여서 이 점만 주의해서 코드를 작성하면 될 것 같다.
2. 코드
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
static char[] sign=new char[10];
static int k;
static int[] array;
static int[] operator=new int[4];
static int min_value=1000000000;
static int max_value=-1000000000;
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
k=scan.nextInt();
int total=0;
array=new int[k];
for(int i=0;i<k;i++)
array[i]=scan.nextInt();
for(int i=0;i<4;i++)
operator[i]=scan.nextInt();
find(1,array[0]);
System.out.println(max_value);
System.out.println(min_value);
scan.close();
}
public static void find(int index,int sum){
if(index==k){
min_value=Math.min(sum,min_value);
max_value=Math.max(sum,max_value);
return ;
}
int base=array[index];
for(int i=0;i<4;i++)
{
if(operator[i]<=0)
continue;
int temp_sum=sum;
if(i==0)
temp_sum+=base;
else if(i==1)
temp_sum-=base;
else if(i==2)
temp_sum*=base;
else
temp_sum/=base;
operator[i]--;
find(index+1,temp_sum);
operator[i]++;
}
return;
}
}
728x90
'알고리즘' 카테고리의 다른 글
[JAVA]백준 10819번: 차이를 최대로 (0) | 2020.11.03 |
---|---|
[JAVA]백준 1940번: 주몽 (0) | 2020.11.02 |
[JAVA]백준 14888번: 연산자 끼워넣기 (0) | 2020.10.06 |
[C++]백준 10966번: 별 찍기 - 21 (0) | 2020.06.30 |
[C++]백준 15726번: 이칙연산 (0) | 2020.06.02 |