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 ,나머지를 slice -
slice된 배열을 접합
-
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
의 두 번째 인자의 인덱스가 포함되는지 아닌지에 대한 확신이 없어서 로그를 찍어보고 검증을 거친 뒤에야 제출이 이루어졌다. -
내가 얼마만큼 레퍼런스에 의존하고 있었는지가 여실히 드러나는 순간이었다. 정확하게 기억나지 않으면 문서를 찾아보고 사용하다보니 지적 재산으로 쌓기 보다는 의존하는 방향으로 뇌가 익숙해진 느낌이다. 의존도를 낮추는 훈련이 필요할 듯 하다.
Hero image from pixabay
댓글