로딩
티스토리 데이터 처리 중입니다.

[C++] 배열 안을 함수 한 번에 회전시켜보자! rotate

 [C++] 배열 안을 함수 한 번에 회전시켜보자! rotate

종종 비트마스킹을 활용한 다이나믹 프로그래밍이나 요세푸스 문제, BFS 등등 배열을 반시계 방향으로 $k$번 회전시켜야 할 경우, 다음과 같은 방법을 활용하였다. 다음 코드는 vector vec를 $k = 1$만큼 회전시킨다고 할 때, C++의 함수 swap를 활용하면 다음과 같이 작성할 수 있다.

HTML 삽입 미리보기할 수 없는 소스 만약, $k > 1$이라면 새로운 container를 만들어, 나머지 연산을 활용하여 회전 이후 해당하는 위치에 새로 데이터를 담을 수 있다. 그러나, 이 경우 불필요하게 배열의 크기만큼 새로운 공간을 할당해야 하여 불편하다.

HTML 삽입 미리보기할 수 없는 소스 이 경우 한 줄의 코드로 위의 작업을 한 번에 할 수 있는 함수가 있으니, rotate 되시겠다. 1. r.....