🔖 문제
nums와 array의 요소들을 오른쪽으로 옮기는 횟수 k가 주어진다.
오른쪽으로 k번 옮겼을 때의 nums를 반환하세요.
🔖접근 방식
문제를 보자마자 Deque를 이용하면 쉽게 풀릴 것 같다라는 생각이 들었습니다.
🔖문제 풀이 코드
class Solution {
public void rotate(int[] nums, int k) {
//deque로 변환
//k만큼 반복문 반복해서 removeLast 한후
// addFirst하기
Deque<Integer> deque = new LinkedList<>();
int rotation = k % nums.length;
int[] ele = new int[nums.length];
if (nums.length <= 1 || k <= 0) {
return;
}
for(int i = 0 ; i<nums.length ; i++){
deque.add(nums[i]);
}
for(int i = 0 ; i<rotation ; i++){
ele[i] = deque.pollLast();
}
for(int i = 0 ; i<rotation ; i++){
deque.addFirst(ele[i]);
}
int index = 0;
for (Integer num : deque) {
nums[index++] = num;
}
}
}