ALGORITHM/문제해결

[JAVA] 배열값 역순으로 복사 ( [] )

안낭우훗 2018. 8. 5. 21:44

/*문제: 15 [배열값 역순으로 복사]
  1) 두 개의 배열이 있다. 한 배열의 값을 다른 배열로 복사하라!
     단 역순으로 복사한다.
  2) 배열 데이터 예:
  int[] list1 = {1, 2, 3, 4, 5, 6};
  int[] list2 = new int[list1.length];
  3) 출력 예:
  list1: 1, 2, 3, 4, 5, 6
  list2: 6, 5, 4, 3, 2, 1

 

class Test{

 public static void main(String[] args) throws Exception {

   int[] list1 = {1, 2, 3, 4, 5, 6};
   int[] list2 = new int[list1.length];

   // case1
   for (int i = 0, j = list1.length - 1; i < list1.length; i++, j--) {
   // list2[i] = list1[j];
   }
   // case2
   for (int i = 0, j = 5; i < list1.length; i++) {
   // list2[i] = list1[j--];
   }
   // case3
   int j = list1.length - 1;
   for (int i = 0; i <  list1.length; i++) {
   // list2[j--] = list1[i];
   }
   // case4
   for (int i = 0; i <  list1.length; i++) {
     list2[(list1.length - 1) - i] = list1[i];
   }

   System.out.print("list1 : ");
   for (int i = 0; i < list1.length; i++) {
     System.out.printf("%s%d", (i == 0) ? "" : ", ", list1[i]);
   }
   System.out.println();

   System.out.print("list2 : ");
   for (int i = 0; i < list1.length; i++) {
     System.out.printf("%s%d", (i == 0) ? "" : ", ", list2[i]);
   }
   System.out.println();
  }
}