본문 바로가기
카테고리 없음

배열 최대 최소값 구하기 / 가변 배열(Ragged Array)

by abstract.jiin 2022. 6. 21.

배열로 최대값과 최소값 구하기 

1) { 10, 50, 30 } 으로 초기화한 배열에서 가장 큰 수 찾기

public class Array01 {

	public static void main(String[] args) {
		
		int[] num = {10,50,30};
		int max = 0; 
	
		for (int i =0; i < num.length; i++) {
			if(max < num[i]) max = num[i];
			}
		
		System.out.printf("가장 큰 수는 %d입니다.", max);
				
	}

}

2) { 10, 50, 30, 4, 100} 배열에서 가장 큰 수와 가장 작은 수 찾기 

> for if 문 사용 해서 한 뒤에, 가장 작은 수 가 음수도 적용 되는지도 꼭 확인하자!

public class Array02 {
	public static void main(String[] args) {
		
		int[] arr = new int[] {10, 50, 30, 4, 100};
		int max = arr[0];
		int min = arr[0];
		
		for (int i =0; i < arr.length; i++) {
			if(max < arr[i]) {
				max = arr[i];
			} else if(min > arr[i]) {
				min = arr[i];				
			}//if
            
		}//for
        
		System.out.printf("가장 큰 수는 %d이고, 가장 작은 수는 %d입니다.", max, min);
		
	}
}

정수값 최소화 할 때, int Wrapper Class , Integer 클래스를 이용해서 정수의 최대값과, 최소값을 이용하기도 한다. 

 

		int min = Integer.MAX_VALUE;
		int max = Integer.MIN_VALUE;

정수의 최대값은 231-1(2,147,483,647) 정소의 최소값은 -231(-2,147,483,648) 이다.

 

 


가변 배열(Ragged Array)은 배열 안의 배열(Array in Array)라고도 한다. 

선언과 동시에 크기를 먼저 고정하는 것이 배열 이라고 알고 있는데

특이하게 배열의 마지막 차수의 크기를 지정하지 않고, 가변적으로 생성이 가능하다. 

 

 

가변 배열의 생성 

int arr[][] = new int[3][]; 

// 3행은 선언 되었지만 열이 확정 되지 않았다.  >> 조정이 가능하다. 

 

public class ArrEx15_ragged {

	public static void main(String[] args) {
		
		final int MAX_ROWS = 5; 
		//final로 선언된 상수, 상수명은 관례적으로 영문 대문자로 정의 값을 수정할 수 없다.
		//선언과 동시에 최초값을 저장하는 초기화 과정을 거쳐야 한다. 
		
		int [][] ragged = new int[MAX_ROWS+1][]; //행의 크기는 6이고, 
		//열의 크기는 지정하지 않고 가변적인 래기드(래그드:가변배열) 배열 생성
		
		for(int r=0; r<=MAX_ROWS; r++) {
			ragged[r]=new int[r+1]; //각 행의 열의 크기 생성 
		} //for

		
		for(int r=0; r<ragged.length;r++) {
			//ragged.length에 의해서 반환되는 행의 크기는 6
			for(int c=0;c<ragged[r].length;c++) {
				//ragged[r].length는 각 행의 열의 길이(크기)
				ragged[r][c]=c; //각 행의 열의 원소 값을 저장
			}//inner for
		}//outer for
		
		//배열원소값 출력 
		for(int r=0; r<ragged.length;r++) {
			for(int c=0; c<ragged[r].
					length;c++) {
				System.out.print(" "+ ragged[r][c]);
				
			} //inner for
			System.out.println(); //줄바꿈
			
		}//outer for
		
		//*교재 10권 중 2권 정도에서만 소개되어있으며, 프로젝트 시에는 잘 안쓴다.

	}

}