chapter2) 배열 역순 정렬
2020. 7. 7. 19:18ㆍPS/etc
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 |