개발자꿈나무

배열 - 최댓값, 역순 정렬, 복사 본문

알고리즘

배열 - 최댓값, 역순 정렬, 복사

망재이 2023. 1. 30. 08:33

☆ 참고 ★

이 글은 그냥 예제만 메모해놓으려고 적어놓은 게시물로 별다른 설명이 존재하지 않습니다.

public class MaxOfArray_2_1
{
	static int maxOf(int[] a) {
		int max = a[0];
		for(int i=1;i<a.length;i++) {
			if(a[i]>max) max = a[i];
		}
		return max;
	}

	public static void main(String[] args)
	{
		Scanner in = new Scanner(System.in);
		
		System.out.println("키의 최댓값을 구합니다.");
		System.out.println("사람 수 : ");
		int num=in.nextInt();
		
		int[] height = new int[num];
		
		for(int i=0;i<height.length;i++) {
			System.out.print("height["+i+"] : ");
			height[i] = in.nextInt();
		}
		System.out.println("최댓값은 "+maxOf(height)+"입니다.");
		
		
	}

}
public static void main(String[] args)
	{
    //Math.random()함수로 안에 값 임의로 지정해주기
		Scanner in = new Scanner(System.in);
		
		System.out.println("키의 최댓값을 구합니다.");
		System.out.println("사람 수 : ");
		int num=in.nextInt();
		
		int[] height = new int[num];
		
		for(int i=0;i<height.length;i++) {
			height[i] = (int)(Math.random()*101)+100;			// 100~200cm
			System.out.println("height["+i+"] : "+height[i]);
		}
		System.out.println("최댓값은 "+maxOf(height)+"입니다.");

	}
//배열 요소 a[idx1]과 a[idx2]의 값을 바꿈 
	static void swap(int[]a,int idx1,int idx2) {
		int t = a[idx1]; a[idx1] = a[idx2]; a[idx2]=t;
 	}
	
	//배열 a의 요소를 역순으로 정렬 
	static void reverse(int[] a) {
		for(int i=0;i<a.length/2;i++) {
			swap(a, i, a.length-i-1);  
		}
	}
public static void swap(int[] a,int idx1, int idx2) {
		int t = a[idx1]; a[idx1] = a[idx2]; a[idx2] = t;
	}
	public static void reverse(int[] a) {
		for(int i=0;i<a.length/2;i++) {
			swap(a, i, a.length-i-1);
			System.out.println(Arrays.toString(a));
		}
	}
	
	public static void main(String[] args)
	{
		int[] a = {2,5,1,3,9,6,7};
		
		System.out.println(Arrays.toString(a));
		reverse(a);
		
	}
    
    //reverse메소드 안에 배열을 출력하는 실행문을 넣어주면 하나하나씩 바뀌어가는 모습을 볼 수 있음
static int sumOf(int[] a) {
		int sum = 0;
		for(int i=0;i<a.length;i++) {
			sum += a[i];
		}
		return sum;
	}
	//배열 b의 모든 요소를 배열 a에 복사하는 메소드 
	static void copy(int[]a,int[]b) {
		b = Arrays.copyOf(a, a.length);
		System.out.println(Arrays.toString(a));
		System.out.println(Arrays.toString(b));
	}
	//배열 b의 모든 요소를 배열 a에 역순으로 복사하는 메소드 
	static void rcopy(int[]a,int[]b) {
		b = Arrays.copyOf(a, a.length);
		reverse(b);
		a = Arrays.copyOf(b, b.length);
		System.out.println(Arrays.toString(a));
		System.out.println(Arrays.toString(b));
	}
	
	public static void main(String[] args)
	{
		int[] a = {2,5,1,3,9,6,7};
		int[] b = new int[7];
		
//		reverse(a);
//		System.out.println(sumOf(a));
		copy(a, b);
		rcopy(a, b);
		
	}
    //위의 메소드들을 응용해서 함께 사용
728x90