JAVA/Java 기초

2차원 배열

H_eh 2022. 5. 13. 09:24
2차원 배열
- 행과 열로 이루어져있다.
int ary[][]
ary = new int[2][5];
// int ary[][] = new int[2][5];
// 2행 5열

2차원 배열의 개수
-- 배열명.length → 행의 개수
-- 배열명[행의 인덱스].length -> 열의 개수

 

  • 2차원 배열 초기화
System.out.println("****** 2차원 배열 초기화 ******");
int c[][] = {{1,2,3},
             {4,5,6}};

for(int i=0; i<2; i++) {	//행
    for(int j=0; j<3; j++) {	//열
        System.out.println( c[i][j] );
    }
}

 

  • 실수값을 입력받아 2행 3열의 2차원 배열을 만들어라
Scanner sc = new Scanner(System.in);
double ary2[][] = new double[2][3];

for (int i=0; i<2; i++) {
    for(int j=0; j<3; j++) {
        ary2[i][j]=sc.nextDouble();
        System.out.println( ary2[i][j]);
    }
}

 

  • 배열 복사하기
int ary[][] = {{1,2,3,4},
               {5,6,7,8}};		//2행 4열

int ary1[][] = new int[4][2];	//4행 2열

for(int i=0; i<ary.length; i++) {		//2행
    for(int j=0; j<ary[0].length; j++) {	//4열
        ary1[j][i]=ary[i][j];
    }
}

for(int i=0;i<4;i++) {
    for(int j=0;j<2;j++) {
        System.out.print(ary1[i][j]+" ");
    }
    System.out.println();
}

 

  • 2행3열에 정수를 입력해 입력한 정수 총합 출력
int ary[][] = new int[2][3];
int sum=0;

for(int i=0; i<2; i++) {
    for(int j=0; j<3; j++) {
        ary[i][j] = sc.nextInt();	//배열 좌표의 데이터 값 각각 1개씩임..
        sum += ary[i][j];
    }
}
System.out.println(sum);

int ary[] = new int[5];
int n = ary.length;	//배열의 개수
System.out.println(n);

 

  • 비정방형 배열
String s[][] = {
        {"java"},
        {"c","c++"},
        {"html","css","python"}
};

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

 

  • 배열 평균 구하기
int ary1[][] = { {90, 90, 110, 110}, 
                {120, 110, 100, 110}, 
                {120, 140, 130, 150}};

double sum = 0;
int cnt = 0;
for(int i=0; i<ary1.length; i++) {
    for(int j=0; j<ary1[i].length; j++) {
        sum += ary1[i][j];
        cnt++;
    }
}
System.out.println(sum);
System.out.println(sum/ary1.length);	//행 기준 평균
System.out.println(sum/cnt);			//개수 기준 평균

 

  • 정수를 입력받아 high라는 함수 안에서 입력한 수 중 최대값을 구하라
public class Review0602D {

	static void high(int[][] ary, int b, int c){
		int max = ary[0][0];
		for(int i=0; i<ary.length; i++) {
			for(int j=0; j<ary[i].length; j++) {
				if(max < ary[i][j]) {
					max = ary[i][j];
				}
			}
		}
		System.out.println(max);
	}
	
	public static void main(String[] args) {
		
		int[][] ary = new int[3][3];
		
		Scanner sc = new Scanner(System.in);
		for(int i=0; i<ary.length; i++) {
			for(int j=0; j<ary[i].length; j++) {
				ary[i][j] = sc.nextInt();
			}
		}
		
		high(ary, 3, 3);
	}
}
728x90
728x90