java로 짜봤어요.
public static int[] rotate(int[] arr, int s, int t, int k){
if ( arr == null || arr.length < t || arr.length < k || s > t ) return arr;
int[] tmpArr = new int[arr.length];
int idx = 0;
int tmpVal = 0;
tmpVal = arr[t];
for ( int i = 0; i < arr.length ; i++ ){
if ( i < s || i >= t) idx = i+k;
if ( s <= i && i < t ) idx= i+k+1;
if ( i == t ) idx = s + k;
if ( idx >= arr.length ) idx = idx % arr.length;
if ( i == t ){
tmpArr[idx] = tmpVal;
}else{
tmpArr[idx] = arr[i];
}
System.out.println(i + " => " + idx );
}
return tmpArr;
}
public static void main(String[] args){
int[] arr = new int[]{1,2,3,4,5,6,7,8};
arr = rotate(arr, 2,6, 2);
for( int l = 0; l < arr.length; l++)
System.out.println( arr[l]);
}