https://leetcode.com/problems/rotate-array/
- remainder(%) 사용
class Solution { public: void rotate(vector<int>& nums, int k) { int size = nums.size(); vector<int> tmp(nums); for(int i=0;i<size;i++){ nums[(i+k)%size]=tmp[i]; } } };
2.수학적 계산 풀이 Space Complexity: O(1)
class Solution { public: void rotate(vector<int>& nums, int k) { //[1,2,3,4, 5,6,7], k = 3 --> [5,6,7, 1,2,3,4] //k elements from the back end of the array come to the front k =k%nums.size(); //reversing all numbers reverse(nums.begin(),nums.end()); //[7 6 5 4 3 2 1] //reversing first k numbers reverse(nums.begin(),nums.begin()+k); //[5 6 7 4 3 2 1] // revering last n-k numbers reverse(nums.begin()+k,nums.end()); //[5 6 7 1 2 3 4] }