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)에 수행되도록 작성할 수 있다.
'테크 > 알고리즘' 카테고리의 다른 글
39. 각 동전 및 지폐로 금액 맞추기 알고리즘 (재귀 프로그래밍) (0) | 2016.09.21 |
---|---|
38. 이항계수 구하기 알고리즘 (재귀 프로그래밍) (0) | 2016.09.21 |
36. 매크로 함수의 위험2 - 성능 저하 (0) | 2016.09.06 |
35. 매크로 함수의 위험1 - 논리 오류 (0) | 2016.09.06 |
34. KMP 문자열 매칭 알고리즘 (0) | 2016.08.03 |