본문 바로가기
IT/[Everyday]Coding

배열 회전

by Jang HyunWoong 2014. 12. 19.

배열 arr[]과 위치 s, t가 있을 때, arr[s], arr[s+1], ..., arr[t-1]을 오른쪽으로 한 칸씩 이동하고, arr[t]는 arr[s]로 복사하는 것을 1만큼 오른쪽으로 회전시킨다. 

 

예를 들어 s=2, t=6이면 길이가 8인 아래 배열은 그림과 같이 바뀐다.

0

 1

 s=2

 3

 4

 5

t= 6

 7

 1

 2

 5

 

 

 0

 1

 2

 3

 4

 5

 6

 7

 1

7

3

 

 

  1. #include <cstdlib>
  2. #include <iostream>
  3. using namespace std;
  4.  
  5. void right_rotatie(int arr[], int s, int t)
  6. {
  7. int temp;
  8. temp = arr[t];
  9. for(t; t>=s; t--)
  10. {
  11. arr[t]=arr[t-1];
  12. }
  13. arr[s]=temp;
  14. }
  15.  
  16. int main()
  17. {
  18. int arr[8]={1, 2, 3, 4, 5, 6, 7, 8};
  19. int s = 2;
  20. int t = 6;
  21. right_rotatie(arr, s, t);
  22. for(int i=0; i<sizeof(arr)/sizeof(arr[0]); i++)
  23. cout << arr[i];
  24. return 0;
  25. }

 

12734568


반응형

'IT > [Everyday]Coding' 카테고리의 다른 글

팩토리얼 계산 2가지 방법  (0) 2014.12.19
queue 구현  (0) 2014.12.19
두 원소 바꾸기 swap()  (0) 2014.12.19
C++로 간단하게 구현한 스택  (0) 2014.12.19
셀 정렬 in C#  (0) 2014.12.19