Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2018
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.46 KB | None | 0 0
  1. import java.util.*;
  2. public class Main {
  3.    
  4.     static int N;
  5.     static int[] number;
  6.     static int[] op = new int[4];
  7.     static int min = 100000001; //최소값
  8.     static int max = -100000001; // 최대값
  9.    
  10.    
  11.     public static void main(String[] args) {
  12.         Scanner sc = new Scanner(System.in);
  13.        
  14.         N = sc.nextInt();
  15.         number = new int[N];
  16.         for(int i=0;i<N;i++){ //숫자입력
  17.             number[i] = sc.nextInt();
  18.         }
  19.         for(int i=0;i<4;i++){ //연산자 입력
  20.             op[i] = sc.nextInt();
  21.         }
  22.         dfs(op[0],op[1],op[2],op[3],0,number[0]);
  23.         System.out.println(max);
  24.         System.out.println(min);
  25.        
  26.     }
  27.     public static void dfs(int plus, int minus, int multi, int divide, int num, int result){
  28.         if(num == N-1){ //연산자의수가 숫자-1하고 같아졌을때
  29.             if(max<=result) //최대값보다 크다면
  30.                 max = result;
  31.             if(min>result) //최소값보다 작다면
  32.                 min = result;
  33.         }
  34.  
  35.                 if(plus>0){ //더하기 연산이 있을때
  36.                     dfs(plus-1, minus, multi, divide, num+1, result + number[num+1]);  
  37.                 }   //연산자 하나 쓰고, 연산자의수 하나 증가
  38.                 if(minus>0){ //빼기 연산이 있을때
  39.                     dfs(plus, minus-1, multi, divide, num+1, result - number[num+1]);
  40.                 }
  41.                 if(multi>0){ //곱하기 연산이 있을때
  42.                     dfs(plus, minus, multi-1, divide, num+1, result * number[num+1]);
  43.                 }
  44.                 if(divide>0){ //나누기 연산이 있을때
  45.                     dfs(plus, minus, multi, divide-1, num+1, result / number[num+1]);
  46.                 }
  47.        
  48.     }
  49.    
  50.    
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement