๋ฌธ์ œ์ถœ์ฒ˜

์ฝ”๋”œ๋ฆฌํ‹ฐ CyclicRotation ๋ฌธ์ œ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋ฌธ์ œ์š”์•ฝ

์ •์ˆ˜ N์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐฐ์—ด A๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ด ๋•Œ ‘K`๋งŒํผ ํšŒ์ „ํ–ˆ์„ ๋•Œ ๋ฐฐ์—ด์„ ๊ตฌํ•˜๋ผ.

์˜ˆ๋ฅผ ๋“ค์–ด, A = [3, 8, 9, 7, 6], K = 3์ผ ๊ฒฝ์šฐ, [9, 7, 6, 3, 8]์„ ๋ฆฌํ„ดํ•˜๋ฉด ๋œ๋‹ค.


ํ’€์ด

1
2
3
4
5
6
function solution(A, K) {
  for (let i = 0; i < K; i++) {
    A.unshift(A.pop());
  }
  return A;
}

์œ„ ์ฒ˜๋Ÿผ ํ’€์—ˆ๋”๋‹ˆ 87%๊ฐ€ ๋‚˜์™”๋‹ค. ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋‹ˆ ๋นˆ ๋ฐฐ์—ด์ด ๋“ค์–ด์™”์„ ๋•Œ์— ๋ฌธ์ œ๊ฐ€ ๋๋‹ค. ๊ทธ๋ž˜์„œ ๋นˆ ๋ฐฐ์—ด์ผ ๋•Œ์˜ ์กฐ๊ฑด์„ ์ถ”๊ฐ€ํ•ด ์ฃผ์—ˆ๋‹ค.

1
2
3
4
5
6
7
8
function solution(A, K) {
  if (A.length < 1) return;

  for (let i = 0; i < K; i++) {
    A.unshift(A.pop());
  }
  return A;
}

์ด๋ ‡๊ฒŒ ํ‘ธ๋‹ˆ 100%๊ฐ€ ๋‚˜์™”์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ํ‘ผ ๋ฐฉ๋ฒ• ๋ง๊ณ  ๋‹ค๋ฅธ ๋ถ„๋“ค์˜ ํ’€์ด๋„ ๊ฐ™์ด ์ ์–ด๋†”์•ผ๊ฒ ๋‹ค. ์—ญ์‹œ ๋‚˜๋Š” ์ˆ˜ํ•™์ ์ธ ์‚ฌ๊ณ ๋ฅผ ํ•˜๋Š” ๋Šฅ๋ ฅ์ด ๋ถ€์กฑํ•œ๊ฒŒ ์•„๋‹Œ๊ฐ€ ์‹ถ๋‹ค.

์•„๋ž˜๋Š” ๋‹ค๋ฅธ ๋ถ„๋“ค์˜ ํ’€์ด๋ฅผ ์ฐธ๊ณ ํ•œ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
function solution(A, K) {
  const length = A.length;
  let result = [];

  for (let i = 0; i < length; i++) {
    const target = (i + K) % length;
    result[target] = A[i];
  }

  return result;
}