배열 연습문제

gustjtmd·2022년 1월 27일
0

Java 연습문제

목록 보기
2/4

int1차원 배열을 매개변수로 전달받아서 배열에 저장된 최대값, 최소값을 찾아서
반환하는 메소드를 각각 다음의 형태로 정의하자

public static int minValue(int[] arr);	//최소값 반환
public static int maxValue(int[] arr);	//최대값 반환

단 반복문을 사용할때 minValue 정의는 일반적인 for문
maxValue의 정의에서는 for-each문을 사용하자


--------------------------------------------------------------------

public class ArrayTest {

    public static int minValue(int[] arr){
        int result = arr[0];
        for(int i = 0; i < arr.length; i++)
            if(result > arr[i])
                result = arr[i];
        return result;
    }
    public static int maxValue(int[] arr){
        int result = 0;
        for(int i : arr)
            if(result < i)
                result = i;
        return result;
    }

    public static void main(String[] args) {
        int[] ar = {10,20,30,40,50};
        System.out.println("최소값 : "+minValue(ar));
        System.out.println("최대값 : "+maxValue(ar));

    }
}


최소값 : 10
최대값 : 50
다음 메소드 int1차원 배열에 저장된 값을 두번째 매개변수로 전달된 값의
두번째 매개변수로 전달된 값의 크기만큼 전부 증가시킨다
public static void addOneDArr(int[] arr, int add){
	for(int i = 0; i < arr.length; i++)
    		arr[i] += add;
}

위 메소드를 호출하는 형태로, int2차원 배열에 저장된 값 전부를 두번째 매개변수로
전달된 값의 크기만큼 증가시키는 메소드를 다음의 형태로 정의하자.

public static void addTwoDArr(int[][] arr, int add){
	//이 안에서 addOneDarr 메소드를 호출한다.
}

------------------------------------------------------------------------

public class arrtest {

    public static void addOneDarr(int[] arr, int add){
        for(int i = 0; i < arr.length; i++) {
            arr[i] += add;
        }
    }
    public static void addTwoDarr(int[][] arr, int add){

        for(int i = 0; i < arr.length; i++)
            addOneDarr(arr[i],add);
    }
    public static void main(String[] args) {
        int[][] cha = {
                {10,20,30},
                {40,50,60}
        };
        for(int i = 0; i < cha.length ;i++){
            for (int j = 0; j < cha[i].length; j++){
                addTwoDarr(cha,100);
                System.out.print(cha[i][j] + "\t");
            }
            System.out.println();
        }
    }
}

110	220	330	
440	550	660	
다음 형태로 표현된 2차원 배열이 존재한다고 가정해보자.

1	2	3		14	5	6		27	8	9		3행

이러한 형태를 갖는 int2차원 배열이 인자로 전달되면, 다음의 형태로 배열의 구조를
변경시키는 메소드를 정의하자.

7	8	9	3행이 2행으로
1	2	3	1행이 2행으로
4	5	6	2행이 3행으로

public class arrtest2 {
    public static void chaos(int[][] arr) {
        int[] last = arr[arr.length-1];

        for(int i = arr.length-1; i >0; i--)
            arr[i] = arr[i-1];
        arr[0] = last;
    }

    public static void main(String[] args) {
        int[][] arr = {
                {1, 2, 3},
                {4, 5, 6},
                {7, 8, 9}
        };
        chaos(arr);

        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                System.out.print(arr[i][j]);
            }
            System.out.println();
        }

        System.out.printf("==========================================================\n");

        chaos(arr);
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                System.out.print(arr[i][j]);
            }
            System.out.println();
        }
    }
}

789
123
456
==========================================================
456
789
123
profile
반갑습니다

0개의 댓글