1. 개요

Rotate() 함수는 쉬움.

Rotate() 함수는 두 종류가 존재. Right_Rotate()와 Left_Rotate().

배열 내의 움직임이 오른쪽이든 왼쪽이든 한 칸씩 밀려서 움직이는 것.


2. 문제

(2-1) Right_Rotate() 함수를 작성하시오.

(2-2) k만큼 인자로 받아서 k만큼 오른쪽 회전시키는 함수를 작성하시오.

<Thinking> 

k만큼 오른쪽으로 회전하는 것은 1만큼 오른쪽으로 회전하는 것을 k번 반복하면 되지만 이 방법은 느리다.

더 빠르게 결과를 얻도록 작성해보자.


3. 코드

(3-1) Right_Rotate()


(3-2) Right_Rotate() 출력


(3-3) K_Right_Rotate()


(3-4) K_Right_Rotate() 출력



4. 정리

K번만큼 회전하는 Rotate() 함수는 left이든 Right이든 방향에 상관없이 1씩 회전하는 함수를 K번 수행하면 작동한다.

하지만 이와같은 경우에 그 수행속도는 O(n^2)에 수렴된다. 그렇기에 하나의 복사 배열을 만들어서 적절한 인덱스를

나눈뒤에 O(n)에 수행되도록 작성할 수 있다.





+ Recent posts