-
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