### Cyclic Rotation

January 16, 2020

**Write a function:**

function solution(A, K);

that, given an array A consisting of N integers and an integer K, returns the array A **rotated K times**.

**For example**, given

A = [3, 8, 9, 7, 6] K = 3

the function should return [9, 7, 6, 3, 8]. Three rotations were made:

[3, 8, 9, 7, 6] -> [6, 3, 8, 9, 7]

[6, 3, 8, 9, 7] -> [7, 6, 3, 8, 9]

[7, 6, 3, 8, 9] -> [9, 7, 6, 3, 8]

**For another example**, given

A = [0, 0, 0]

K = 1

the function should return [0, 0, 0]

Given

A = [1, 2, 3, 4]

K = 4

the function should return [1, 2, 3, 4]

Assume that:

• N and K are integers within the range [0..100];

• each element of array A is an integer within the range [−1,000..1,000].

This problem can be solved by using array's **slice** function. Be advised that K could be bigger than array's length.

```
function solution(A, K) {
// write your code in JavaScript (Node.js 8.9.4)
const len = A.length
let p = 0
if(K == len) return A // rotation steps = array length
if(K > len) p = len - (K % len) // rotation steps > array length
else p = len - K
const array1 = A.slice(p)
const array2 = A.slice(0, p)
return array1.concat( array2 )
}
console.log("solution([3, 8, 9, 7, 6], 3): ", solution([3, 8, 9, 7, 6], 3))
```