ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • chapter2) 배열 역순 정렬
    PS/etc 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
킹수빈닷컴