중요하다고 생각하는 포인트
이 코드는 b배열의 역순값도 구해야하고, 그것을 a배열에 copy까지해야하는 코드이지만, 일전에 학습한 swap메소드, reverse메소드를 따로 생성하지 않고, copy메소드 최하단 b배열의 인덱스 범위만 수정하여 역순값으로 바로 copy를 한다.
//--- 배열 b의 모든 요소를 배열 a에 역순으로 copy ---//
static void rcopy(int[] a, int[] b) {
int num = a.length <= b.length ? a.length : b.length;
for (int i = 0; i < num; i++)
a[i] = b[b.length - i - 1]; // <--포인트 부분
전체코드
package DataStructureBasic;
// 배열의 모든 요소를 역순으로 copy 합니다
import java.util.Scanner;
class Rcopy {
//--- 배열 b의 모든 요소를 배열 a에 역순으로 copy ---//
static void rcopy(int[] a, int[] b) {
int num = a.length <= b.length ? a.length : b.length;
for (int i = 0; i < num; i++)
a[i] = b[b.length - i - 1];
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("a의 요소수는 : ");
int numa = sc.nextInt(); // a배열의 요소 입력받기
int[] a = new int[numa]; // 요소수가 numa인 배열
for (int i = 0; i < numa; i++) {
System.out.print("a[" + i + "] : ");
a[i] = sc.nextInt();
}
System.out.print("b의 요소수는 : ");
int numb = sc.nextInt(); // b배열의 요소 입력받기
int[] b = new int[numb]; // 요소수가 numb인 배열
for (int i = 0; i < numb; i++) {
System.out.print("b[" + i + "] : ");
b[i] = sc.nextInt();
}
rcopy(a, b); // 배열 b의 모든 요소를 배열 a에 역순으로 copy
System.out.println("배열 b의 모든 요소를 배열 a에 역순으로 copy 하였습니다.");
for (int i = 0; i < numa; i++)
System.out.println("a[" + i + "] = " + a[i]);
}
}