프로그래밍 기초 및 응용

보충 - 2차 배열

황샐리 2022. 5. 16. 17:47

오늘은 난이도를 올린 2차배열을 해보겠습니다.

 2차원 배열의 length는 모두 행값이 나옵니다.

[행][열] 여기서 랭쓰는? 무조건 행 값입니다.

package day0516;

import java.util.Scanner;

public class ArrayTest {
	
	public static void main(String[] args) {
		int n=5;
		Scanner in=new Scanner(System.in);
		System.out.println("수입력[2~9] : ");
		n=in.nextInt();
		
		int[][] arr=new int[n][n+10];
		System.out.println(arr.length);
	}

}

저기에 n+10이 있어도? 5개다. 그런데?

System.out.println(arr[0].length);

이런 문제를 준다면?

랭쓰는 10입니다. 왜요?

0층에 있는 가로열이 10개니까요~!!

0번째에 있는 애들이 10개라고요.

 

오키.

레고

package day0516;

import java.util.Scanner;

public class ArrayTest {
	
	public static void main(String[] args) {
		int r,c;
		Scanner in=new Scanner(System.in);
		System.out.println("수입력[2~9] : ");
		r=in.nextInt();
		System.out.println("수입력[2~9] : ");
		c=in.nextInt();
		
		int[][] arr=new int[r][c];
		
		//출력
		for(int[] arr1 : arr) {
			for(int n : arr1) {
				System.out.printf("%2d", n);
			}
			System.out.println();
		}
	}

}

public static void main(String[] args) {
		int r,c;
		Scanner in=new Scanner(System.in);
		System.out.println("수입력[2~9] : ");
		r=in.nextInt();
		System.out.println("수입력[2~9] : ");
		c=in.nextInt();
		
		int[][] arr=new int[r][c];
		
		int count=1;
		//초기화 1~25
		for(int i=0; i<r ; i++) {
			for(int j=0; j<c ; j++) {
				arr[i][j]=count++;
			}
		}
		
		//출력
		for(int[] arr1 : arr) {
			for(int n : arr1) {
				System.out.printf(" %2d", n);
			}
			System.out.println();
		}
	}

int count=1; 

를 통해서 점차 늘어나도록 만들어줍니다.

 

package day0516;

import java.util.Scanner;

public class ArrayTest {
	
	public static void main(String[] args) {
		int r,c;
		Scanner in=new Scanner(System.in);
		System.out.println("수입력[2~9] : ");
		r=in.nextInt();
		System.out.println("수입력[2~9] : ");
		c=in.nextInt();
		
		int[][] arr=new int[r][c];
		
		int count=1;
		//초기화 1~25
		for(int i=0; i<r ; i++) {
			for(int j=0; j<c ; j++) {
				arr[i][j]=count++;
			}
		}
		
		display(arr);
		
	} //end main
	
	//출력
	static void display(int[][] arr){
		for(int[] arr1 : arr) {
			for(int n : arr1) {
				System.out.printf(" %2d", n);
			}
			System.out.println();
		}

	}
}

이렇게도 가능합니다.

메인 밖에서 해주엇슴니다.

 

display(arr);

 

이것은 syso 코드등등을 따로 안쓰고 걍 저거만 몇개 복사해주면 행렬이 복사한 만큼 나옵니다. 지금은 하나만 했으니까 당연히 배열도 하나만 나왔슴다.