YS's develop story
JAVA ) java 2차원 배열 관련.. , 열혈 java 프로그래밍 309쪽 문제 2번 본문
안녕하세요 ~
오늘은 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이 되겠죠!
'Java' 카테고리의 다른 글
Java ) java 상속관련 .. (0) | 2020.10.16 |
---|---|
JAVA error) Implicit super constructor is undefined, Constructor call must be the first statement in a constructor. (0) | 2020.10.14 |
JAVA ) static이라고 선언된 변수, 클래스 변수 (0) | 2020.10.04 |
JAVA ) 클래스의 String toString() 메소드 (0) | 2020.09.29 |
Java ) Java 에서 문자열 생성을 위한 두 가지 방법의 차이점 (1) | 2020.09.19 |
Comments