codility 배열 문제 풀이 - 수만큼 배열 안 숫자 밀기

Jung Hyun Kim·2021년 2월 16일
0

1주 1알고리즘 문제 풀기👆

문제

숫자가 담긴 배열을 첫번째 파라미터로 받고, 두번째 파라미터로 숫자를 넘겨주면 그 숫자만큼 하나씩 밀린 배열을 리턴한다

입출력 예

solution([1,2,3,4,5],2) // [ 4, 5, 1, 2, 3 ]

나의 풀이

  1. 먼저 들어온 배열의 마지막 index 를 배열의 제일앞에 추가해주고 해당 값을 빼주어야 하기 때문에 배열의 길이를 구한다.( .length로 변수에 지정해주는것이 나중에 for loop을 돌거나 할때도 효율적이게 작동한다. 매번 length를 구하지 않아도 되기 때문에! 물론 이번 경우에는 .length로 loop을 돌지 않기 때문에 크게 차이는 없다
  2. 제일 먼저 빼줄 인덱스를 length-1으로서 제일 마지막 인덱스로 지정한다.
  3. K만큼 빼주고 더해주고를 반복해야 하므로 initial 값을 0으로 지정해주고 K 보다 작을때까지 while loop을 돌면서 해당 인덱스 값을 배열의 제일앞에 넣어주고, .pop()을 통해 마지막 배열 값을 제거한다.
function solution(A, K) {
  const length = A.length;
  const index = length - 1,
    whileCondition = 0;
  while (whileCondition++ < K) {
    A.unshift(A[index]);
    A.pop();
  }
  return A;
}
profile
코린이 프론트엔드 개발자💻💛🤙🏼

0개의 댓글