배열 A가 주어지고 이를 K번 각 배열의 요소를 오른쪽으로 이동시켰을 때, 그 결과를 리턴하시오.
A = [3, 8, 9, 7, 6]
K = 3
[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]
function solution(A, K) {
// 오른쪽으로 움직여야 하는 횟수
const sliceTimes = K % A.length
// 회전할 필요가 없거나, 회전을 배열 길이 만큼 한다면 그냥 배열을 리턴한다.
if (sliceTimes === 0 || sliceTimes === A.length) {
return A;
}
// 배열을 잘 잘라서 리턴한다.
return [...A.slice(A.length - sliceTimes), ...A.slice(0, A.length - sliceTimes)]
}
문제와 관련이 없지만, splice는 원본 배열에 영향을 미치고, slice는 원본 배열에 영향을 미치지 않는다.