karatejin 2022. 11. 18. 12:56

1.번 문제

두 배열의 중복된 최소값과 중복되지 않은 최대값을 표시해라

public class Array4 {

    public static int cmpMin(int[]array1, int[]array2) {
        int min = 0;

        return min;
    }

    public static int cmpMax(int[]array1, int[]array2) {
        int max =0;

        return max;

    }

    public static void main(String[] args) {
        
        int[] nums1= new int[]{1,2,3,4,5,6,7,8,9,10}; /*중복된것중 최소값0*/
        int[] nums2= new int[]{6,7,8,9,10,11,12,13,14,15}; /*중복되지 않는 것중 최대값*/
        
        /*
        1. 두 배열에서 중복된 값 중 최소값
        2. 두 배열에서 중복되지 않은 값 중 최대값
         */
    }
}

1번 풀기

public class Array4 {

    public static int cmpMin(int[]array1, int[]array2) {
        int min = 0;
        min = 10;
        boolean check = true;
        for (int i = 0; i < array1.length; i++) {
            for (int j = 0; j < array2.length; j++)
                while (true) {
                    if (array1[i] == array2[j]) {
                        int a = array1[i];
                        if (min < a) {
                            check = false;
                        }
                        if (check){
                            min = array1[i];
                        }
                    }
                    break;
                }
        }
        return min;
    }

    public static int cmpMax(int[]array1, int[]array2) {
        int max =0;
        max = 15;
        boolean check = true;
        for(int i = 0; i < array2.length; i++){
            for (int j = 0; j <array1.length; j++)
                while(true){
                    if (array2[i] != array1[j]){
                        int a = array2[i];
                        if (max > a){
                            check = false;
                        }if (check){
                            max =array1[i];
                        }
                    }
                    break;
                }
        }
        return max;
    }

    public static void main(String[] args) {
        
        int[] nums1= new int[]{1,2,3,4,5,6,7,8,9,10}; /*중복된것중 최소값*/
        int[] nums2= new int[]{6,7,8,9,10,11,12,13,14,15}; /*중복되지 않는 것중 최대값*/
        /*
        1. 두 배열에서 중복된 값 중 최소값
        2. 두 배열에서 중복되지 않은 값 중 최대값
         */
        System.out.println(cmpMin(nums1,nums2));
        System.out.println(cmpMax(nums1,nums2));
    }
}

 

 

2번 문제

각배열을 같은 열의 최소 값만 출력하기

public class Array5 {
    public static void main(String[] args) { /*배열*/ /*4개의 배열 중 첫(둘,3,4)번쨰 애들만 뽑아서 최소값*/

        int[] nums1 = new int []{1,8,9,16,17};
        int[] nums2 = new int []{2,7,10,15,18};
        int[] nums3 = new int []{3,6,11,14,19};
        int[] nums4 = new int []{4,5,12,13,20};

        int[] resultArray = new int[5];

        /*배열들 중 동일 인덱스에 위치한 값들 중 최소값들만 뽑아서 새로운 배열을 만든다.*/

        int a = 10;
        int b = 5;
        int c = 7;

        int min = a;
        if(a < b){
            min = a;
        }else{
            min = b;
        }

        if(c < min){
            min = c;
        }
        System.out.println("min: " + min);

       /* System.out.println(isSubset(nums1, nums2,));*/
    }
}

2번 풀기

 

public class Array5 {
    public static void main(String[] args) { /*배열*/ /*4개의 배열 중 첫(둘,3,4)번쨰 애들만 뽑아서 최소값*/

        int[] nums1 = new int []{1,8,9,16,17};
        int[] nums2 = new int []{2,7,10,15,18};
        int[] nums3 = new int []{3,6,11,14,19};
        int[] nums4 = new int []{4,5,12,13,20};

        int[] resultArray = new int[5];

        /*배열들 중 동일 인덱스에 위치한 값들 중 최소값들만 뽑아서 새로운 배열을 만든다.*/

        int a = 10;
        int b = 5;
        int c = 7;

        int min = a;
        if(a < b){
            min = a;
        }else{
            min = b;
        }

        if(c < min){
            min = c;
        }
        System.out.println("min: " + min);

        int [] minNum = new int[nums1.length];
        for(int i = 0; i < nums1.length; i++){
            if(nums1[i] < nums2[i]){
                minNum[i] = nums1[i];
            } else if (nums2[i] < nums3[i]){
                minNum[i] = nums2[i];
            } else if (nums3[i] < nums4[i]){
                minNum[i] = nums3[i];
            } else {
                minNum[i] = nums4[i];
            }
        }
        for(int i = 0; i < nums1.length; i++) {
            System.out.print(minNum[i]);
            System.out.print(i != (nums1.length-1) ? ", " : " ");            
        }
    }
}