CodeWars 일흔 번째 문제

Updated:

Data Reverse

public static int[] DataReverse(int[] data) {
    int[] dataArray = new int[data.length];

    for(int i = data.length-8, j = 0  ; i >= 0; i-=8, j+=8) {
        for(int x = i, y = j; x < i+8; x++, y++) {
            dataArray[y] = data[x];
        }
    }

    return dataArray;
}
  • Best 코드랑 같은 알고리즘 이었다. 나는 뭔가 쉽게 생각할게 있을 줄 알았는데 없었다.
  • 다만 System.arraycopy라는 API를 알게 되었다. 딱봐도 쉽게 사용 가능한 메소드였다.
  • 비슷한 문제가 나오면 사용해야겠다.
public static int[] DataReverse(int[] data) {
    int bytes[] = new int[data.length];
    for (int i = data.length-8, j=0; i>=0; i-=8, j+=8) {
        System.arraycopy(data, i, bytes, j, 8);
    }
    return bytes;
}