YS's develop story

JAVA ) java 2차원 배열 관련.. , 열혈 java 프로그래밍 309쪽 문제 2번 본문

Java

JAVA ) java 2차원 배열 관련.. , 열혈 java 프로그래밍 309쪽 문제 2번

Yusang 2020. 10. 10. 10:01

안녕하세요 ~ 

 

오늘은 java 2차원 배열에 관련해서 정리를 하고자 글을 작성합니다. ~

 

아래 문제는 열혈 java프로그래밍 309쪽 문제입니다.

 

* 문제 2

 

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

 

1   2   3        1행

4   5   6        2행

7   8   9        3행

 

이러한 형태를 갖는 int형 2차원 배열이 인자로 전달되면,

다음의 형태로 배열의 구조를 변경시키는 메소드를 정의하자

 

4   5   6        1행

7   8   9        2행

1   2   3        3행

 

배열의 가로와 세로 길이에 상관없이 위와 같이 동작하도록 메소드를 정의해아 한다.

 

 

문제를 풀기 전에 아래의 코드를 봅시다

 

package javapractice;

class JavaPractice {
	
public static void main(String[] args) {
	
	int[][] arr = new int[][] {
		{1,2,3},
		{4,5,6,5,3},
		{7,8,9,4}
	};
	
	System.out.println(arr.length);
	System.out.println(arr[1].length);
	System.out.println(arr[2].length);
    }
}

위에 코드를 통해서 확인 할 수 있듯이 arr[i]을 통해 i번째 행에 접근할 수 있습니다.

 

 

이렇게 특정 번째 행의 숫자를 출력할 수 도 있습니다.

class JavaPractice {
	
public static void main(String[] args) {
	
	int[][] arr = new int[][] {
		{1,2,3},
		{4,5,6,5,3},
		{7,8,9,4}
	};
	
	for(int i=0; i<arr[1].length; i++) {
		System.out.print(arr[1][i] +" ");
	}
  }
}

 

 

이 내용을 바탕으로 문제의 코드를 작성해 봤습니다. 

package javapractice;

class JavaPractice {
	
public static void main(String[] args) {
	
	int[][] arr = new int[][] {
		{1,2,3},
		{4,5,6,5,3},
		{7,8,9,4},
		{13,412,521,521,5213}
	};
	
	swap(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(" ");
	}
}

static void swap(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;
	}	
}

정리를 하자면....

arr[i]를 통해 2차원 배열에 특정 행에 접근할 수 있고 위 문제처럼 행을 바꿔줄 수 있습니다.

arr.length는 2차원 배열의 전체 길이를 반환하고,

arr[i].lenghth는 2차원 배열의 i번째 행의 길이를 반환합니다.

 

arr.legnth는 17이 되겠고

arr[1].legnth는 3이 되겠죠! 

 

Comments