티스토리 뷰

PS/etc

chapter2) 배열 역순 정렬

kingsubin 2020. 7. 7. 19:18

 

public class Q2 {
    public static void main(String[] args) {
        Random random = new Random();

        int[] arr = new int[6];

        for (int j = 0; j < arr.length; j++) {
            arr[j] = random.nextInt(100);
            System.out.print(arr[j] + " ");
        }

        for (int i = 0; i < arr.length/2; i++) {
            System.out.println("\na[" + i + "]과 a[" + (arr.length - 1 - i) + "]를 교환합니다.");
            swap(arr, i, arr.length - i - 1);

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

        System.out.println("\n역순 정렬을 마쳤습니다.");
    }

    static void swap(int[] arr, int idx1, int idx2) {
        int temp = arr[idx1];
        arr[idx1] = arr[idx2];
        arr[idx2] = temp;
    }
}

(1)

class ReverseArrayEx_02_02 {
	// 배열의 요소 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 print(int[] a) {
		for (int i = 0; i < a.length; i++)
			System.out.print(a[i] + " ");
		System.out.println();
	}

	// 배열 a의 요소를 역순으로 정렬
	static void reverse(int[] a) {
		print(a);
		for (int i = 0; i < a.length / 2; i++) {
			System.out.println("a[" + i + "]와 a[" + (a.length - i - 1) + "]를 교환합니다.");
			swap(a, i, a.length - i - 1);
			print(a);
		}
	}

	public static void main(String[] args) {
		Scanner stdIn = new Scanner(System.in);

		System.out.print("요솟수는 :");
		int num = stdIn.nextInt(); // 요솟수

		int[] x = new int[num]; // 요솟수 num인 배열

		for (int i = 0; i < num; i++) {
			System.out.print("x[" + i + "] : ");
			x[i] = stdIn.nextInt();
		}

		reverse(x); // 배열 a의 요소를 역순으로 정렬

		System.out.println("역순 정렬을 마쳤습니다.");
//		for (int i = 0; i < num; i++)
//			System.out.println("x[" + i + "] = " + x[i]);
	}
}

(2)

 

- 답안코드의 경우 메소드를 쪼개서 메인에서 사용했는데 이렇게 쪼개서 사용하는 방식이 문제가 커지면 더 좋을거같음.

 

 

※참조
Do it! 자료구조와 함께 배우는 알고리즘 입문

'PS > etc' 카테고리의 다른 글

chapter2) 10진수 변환  (0) 2020.07.08
chapter2) 배열 요소의 합계 구하기  (0) 2020.07.07
chapter1) 숫자 피라미드 찍기  (0) 2020.07.07
chapter1) 피라미드 별 찍기  (0) 2020.07.07
chapter1) 직각 이등변 삼각형 별찍기  (0) 2020.07.06