July 16, 2023
N개의 정수로 구성된 배열 A가 주어집니다. 배열의 회전은 각 요소가 하나의 인덱스만큼 오른쪽으로 이동하고 배열의 마지막 요소가 첫 번째 위치로 이동하는 것을 의미합니다. 예를 들어 배열 A = [3, 8, 9, 7, 6]의 회전은 [6, 3, 8, 9, 7]입니다(요소가 인덱스 하나씩 오른쪽으로 이동하고 6이 첫 번째 위치로 이동).
목표는 배열 A를 K회 회전하는 것입니다. 즉, A의 각 요소를 오른쪽으로 K회 이동하는 것입니다.
함수를 작성합니다:
function solution(A, K);이 함수는 N개의 정수로 구성된 배열 A와 정수 K가 주어지면 배열 A를 K번 회전한 값을 반환합니다.
예를 들어
A = [3, 8, 9, 7, 6]
K = 3이면 함수는 [9, 7, 6, 3, 8]을 반환해야 합니다. 세 번의 회전이 이루어졌습니다:
[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]다른 예로, 주어진
A = [0, 0, 0]
K = 1이면 함수는 [0, 0, 0]을 반환해야 합니다.
주어진
A = [1, 2, 3, 4]
K = 4인 경우 함수는 [1, 2, 3, 4]를 반환해야 합니다.
가정합니다:
N과 K는 [0..100] 범위 내의 정수입니다; 배열 A의 각 요소는 [-1,000..1,000] 범위 내의 정수입니다. 솔루션에서 정확성에 중점을 둡니다. 솔루션의 성능은 평가의 초점이 아닙니다.
모든 배열을 반복 할 필요없이 배열의 길이로 K 로 나눈 나머지가 실제로 움직이는 횟수이다.
function solution(A, K) {
const num = K % A.length
if (num === 0) {
return A
}
const result = A.slice(-num)
return result.concat(A.slice(0, A.length - num))
}