알고리즘(Algorithm)
Array Shift
꼬꼬랑내
2022. 8. 7. 10:24
배열이 주어졌을 때, 오른쪽, 왼쪽으로 배열을 이동하는 shift
import java.util.Array
public class ShiftTest{
public static void main(String[] args){
int[] arr = new int[] {1, 2, 3, 4, 5};
System.out.println(Arrays.toString(arr));
rightShift(arr);
System.out.println(Arrays.toString(arr));
leftShift(arr);
System.out.println(Arrays.toString(arr));
}
//배열을 왼쪽으로 한 칸씩 이동하는 함수
private static void leftShift(int[] arr){
//맨 앞 수를 저장한다 --> 덮어 써지기 때문
int temp = arr[0];
for(int i = 0; i<arr.length-1; i++){
//차례대로 오른쪽 수를 왼쪽으로 넣는다
arr[i] = arr[i+1];
}
//맨 마지막칸에 원래의 맨 첫 수를 넣는다
arr[arr.length-1] = temp;
}
//배열을 오른쪽으로 한 칸씩 이동하는 함수
private static void rightShift(int[] arr){
//가장 오른쪽(마지막) 수를 저장한다
int temp = arr[arr.length-1];
for(int i = arr.length-1; i>0; i--){
//차례대로 왼쪽 수를 오른쪽으로 넣는다
arr[i] = arr[i-1];
}
//맨 오른쪽 마지막 수를 맨 앞으로 넣는다
arr[0] = temp;
}
}