728x90
반응형
배열의 범위 회전
어떤 배열 A가 있을때 해당 배열의 인덱스 i에서 j 만큼을 회전 시킬 때의 문제이다.
[14][15][16][75][68][79][46][25]
예를 들어 다음과 같은 배열에 2에서 5까지의 회전이 걸린다면
[14][15][79][16][75][68][46][25]
다음과 같이 값이 변하게 된다.
1. Rotation
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | #include<stdio.h> void Rotation(int *arr[], int i, int j); int main() { int arr[7] = {12,15,26,24,52,14,17}; int i; Rotation(&arr, 1,4); for (i = 0; i < 7; i++) { printf("%d\n", arr[i]); } return 0; } void Rotation(int *arr[], int i, int j) { int temp; temp = arr[j]; for (j; j > i ; j--) { arr[j] = arr[j-1]; } arr[i] = temp; } | cs |
앞서 공부한 배열의 포인터를 이용하여 함수를 분리했다.
반복문을 통하여 배열의 회전을 구현하였고
맨 마지막 값은 임시 변수에 저장해두었다가 반복문이 끝나면서 대입해주었다.
반응형
'알고리즘 문제풀이' 카테고리의 다른 글
[알고리즘] 환형 큐(Circulation Queue) (0) | 2017.04.18 |
---|---|
[알고리즘] 큐(Queue)를 이용한 대기번호 (0) | 2017.04.18 |
[알고리즘] 두 변수의 값 바꾸기 (0) | 2017.04.18 |
[알고리즘] 배열의 최대값 구하기 (0) | 2017.04.18 |
[알고리즘] 최대최소 (0) | 2017.04.18 |
댓글