본문 바로가기
알고리즘 문제풀이

[알고리즘] 배열의 범위 회전

by 마스터누누 2017. 4. 18.
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


앞서 공부한 배열의 포인터를 이용하여 함수를 분리했다.

반복문을 통하여 배열의 회전을 구현하였고

맨 마지막 값은 임시 변수에 저장해두었다가 반복문이 끝나면서 대입해주었다.

반응형

댓글