Task description
주어진 수만큼 배열을 오른쪽으로 이동
How I did solve
주어진 값이
A = [3, 8, 9, 7, 6]
,K = 3
일 경우 결과는[9, 7, 6, 3, 8]
즉, 3만큼 오른쪽으로 이동시킬 경우 뒤에서 3개 요소를 앞으로, 나머지를 그 뒤에 나열시키는 새로운 배열 반환.
이를 위해서는
array.length - 3
부터 마지막 요소까지를 slice ,나머지를 sliceslice된 배열을 접합
K가 배열 길이를 넘어설 경우 n회의 cycle을 돌아 제자리가 되므로 K를 배열 길이로 나눈 몫으로 사용.
Solved Code
function solution(A, K) {
let condition = A.length - (K % A.length);
return A.slice(condition).concat(A.slice(0, condition));
}
Retrospective
이 문제는 밀려나간다는 생각에서 해결 방법이 바로 도출되어 단시간에 해결 되었다. 다만
Array.prototype.slice
의 두 번째 인자의 인덱스가 포함되는지 아닌지에 대한 확신이 없어서 로그를 찍어보고 검증을 거친 뒤에야 제출이 이루어졌다.내가 얼마만큼 레퍼런스에 의존하고 있었는지가 여실히 드러나는 순간이었다. 정확하게 기억나지 않으면 문서를 찾아보고 사용하다보니 지적 재산으로 쌓기 보다는 의존하는 방향으로 뇌가 익숙해진 느낌이다. 의존도를 낮추는 훈련이 필요할 듯 하다.