0923.2024.Today I Learned

Sungju Kim·2024년 9월 23일

Sparta_Coding_Camp_TIL

목록 보기
38/53

링크텍스트

import java.io.*;
import java.util.*;

public class Main {

    static int n, min = Integer.MAX_VALUE, max = Integer.MIN_VALUE;
    static int[] arr;
    static int[] operator = new int[4];

    public static void operation(int idx, int value) {
        if (idx == n) {
            min = Math.min(min, value);
            max = Math.max(max, value);
            return;
        }

        int num = arr[idx];
        for (int i = 0; i < 4; i++) {
            if (operator[i] != 0) {
                operator[i]--;
                switch(i) {
                    case 0: operation(idx+1, value+num); break;
                    case 1: operation(idx+1, value-num); break;
                    case 2: operation(idx+1, value*num); break;
                    case 3: operation(idx+1, value/num); break;
                }
                operator[i]++;
            }
        }

    }

    public static void main(String[] args) throws IOException {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        n = Integer.parseInt(br.readLine());
        arr = new int[n];

        StringTokenizer st = new StringTokenizer(br.readLine());

        for (int i = 0; i < n; i++) {
            arr[i] = Integer.parseInt(st.nextToken());
        }

        st = new StringTokenizer(br.readLine());
        for (int i = 0; i < 4; i++) {
            operator[i] = Integer.parseInt(st.nextToken());
        }

        operation(1, arr[0]);

        System.out.print(max + "\n" + min);
    }
}
profile
Fully ✨committed✨ developer, always eager to learn!

0개의 댓글