방법이 여러가지이다.
알고리즘 문제라서 내가 직접 뒤집기를 만들어서 썼다.
만약 k가 리스트의 길이보다 길면 k를 길이로 나눠준다.
class Solution:
def rotate(self, nums: List[int], k: int) -> None:
l = len(nums)
k %= l
self.rev(nums, 0, l - 1)
self.rev(nums, 0, k - 1)
self.rev(nums, k, l - 1)
def rev(self, nums, s, e):
"""
reverse function
"""
while s < e:
nums[s], nums[e] = nums[e], nums[s]
s += 1
e -= 1
return nums
class Solution:
def rotate(self, nums: List[int], k: int) -> None:
l = len(nums)
k %= l
nums[:] = nums[l-k:] + nums[:l-k]