2 min read

CyclicRotation - ์ฝ”๋”œ๋ฆฌํ‹ฐ Lesson 2

Table of Contents

๋ฌธ์ œ์ถœ์ฒ˜

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

๋ฌธ์ œ์š”์•ฝ

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

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


ํ’€์ด

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

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

function solution(A, K) {
  if (A.length < 1) return;

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

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

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

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;
}