k번 만큼 회전 시키는 문제.
- 새로운 배열을 만들어서 밀려서 앞으로 돌아오는 수들을 먼저 넣어준다.
- 뒤로 들어올 수들을 넣어준다.
class Solution:
def rotate(self, nums: List[int], k: int) -> None:
length = len(nums)
k = k%length
if length > 1 :
arr = []
for i in range(length-k, length): arr.append(nums[i])
for i in range(length-k): arr.append(nums[i])
nums[:] = arr[:]
단계 별 시간 복잡도가 위와 같으므로 총 시간 복잡도는 O(n)이다.
최소 3가지의 다른 방법이 있다고 하던데...