글 작성자: 취업중인 피터팬
728x90
기본 환경
JDK : 1.8.0_261 버전
JRE : 1.8.0_261 버전
JAVA VERSION : 8 업데이트 261
Eclipse IDE VERSION : 2020-06버전

 

시나리오

arr 배열에 {1, 2, 3, 4}, {5, 6, 7}, {8, 9} 배열을 초기화 한 후 각 값을 2씩 증가시키는 프로그램을 만드시오.

여기서 arrPrint()함수로 배열을 출력하고 addOneArr()함수로 값을 증가시키고

addTwoArr()함수로 addOneArr()함수를 호출하시오.

(단, addTwoArr()함수에는 매개변수로 이차원 배열과 증가시킬 값,

addOneArr()함수에는 매개변수로 일차원 배열과 증가시킬 값을 받는다.)


 

 

 

다음과 같은 결과가 나와야 합니다.

 

 

 

정답
package ex06array;


class QuTwoDimArray
{
	//문제에서 제시한 내용
	public static void addOneArr(int[] arr, int add)
	{
		//가로에 대한 반복
		for(int i=0; i<arr.length; i++){	
			arr[i] += add;
		}
	}
	//addOneArr() 메소드를 기반으로 2차원 배열을 증가시키는 메소드
	public static void addTwoArr(int[][] arr, int add)
	{
		for(int i = 0; i < arr.length; i ++) {
			addOneArr(arr[i], add);
		}
	}
	
	public static void main(String[] args){		
		//배열선언 : 비어있는 부분은 null로 초기화 된다.
		int[][] arr = {
			{1, 2, 3, 4},
			{5, 6, 7},
			{8, 9}
		};
		//값 증가전 출력
		arrPrint(arr);		
		//2만큼 증가시키는 메소드 호출
		addTwoArr(arr, 2);
		
		System.out.println();
		//증가후 출력
		arrPrint(arr);
	}
	
	//2차원 배열을 출력하기 위한 메소드
	static void arrPrint(int[][] arr) {
		for(int i = 0; i < arr.length; i ++) {
			for(int j = 0; j <arr[i].length; j++) {
				System.out.printf("%d  ", arr[i][j]);
			}
			System.out.println();
		}
	}
}

 

문제의 조건도 좀 이상하고 코드도 좀 이상합니다. 이차원 배열을 매개변수로 일차원배열로 받을 수도 있다는 것을 경험하기 위해 풀어본 문제입니다.