#include <stdio.h>

void reverse(int nums[], int size, int start, int end) {
	while (start < end) {
		int temp = nums[start];
		nums[start] = nums[end];
		nums[end] = temp;
		start++;
		end--;
	}
}

void rotate(int nums[], int size, int k) {

	k = k % size;
	reverse(nums, size, 0, k-1);
	reverse(nums, size, k, size-1);
	reverse(nums, size, 0, size-1);
}


int main() {
	int arr[10] = {0,1,2,3,4,5,6,7,8,9};
	int size = 10;
	int i, j;

	for (i = 0; i < 10; i++) {
		printf("%d ", arr[i]);
	}
	printf("\n");

	// reverse(arr, size, 0, 9);
	rotate(arr, size, 2);

	for (i = 0; i < 10; i++) {
		printf("%d ", arr[i]);
	}
	printf("\n");

	return 0;
}

'Programming > Programmers 알고리즘 문제' 카테고리의 다른 글

structsize  (0) 2019.10.24
quickselect  (0) 2019.10.24
quicksort  (0) 2019.10.24
지나가다 본 알고리즘 문제 - 택배 박스 문제  (0) 2018.04.16
파이썬 공부  (0) 2018.04.15
Posted by 이미안녕
,