리스트가 원으로 연결되어 있다고 생각하고, 시계 방향으로 회전시키는 문제이다.
from collections import deque
class Solution:
def rotate(self, nums: List[int], k: int) -> None:
nums = deque(nums)
for i in range(k):
nums.rotate(1)
nums = list(nums)
파이썬은 위와 같이 rotate 함수를 자체적으로 지원해줘서 이 함수를 가져다 쓰면 손쉽게 구현할 수 있지만 LeetCode는 리스트를 새로 선언하는 것을 다른 리스트로 판단하고, 인정해주지 않는다. 그래서 직접 구현해야 한다.
for문으로 리스트를 탐색한다.
리스트의 마지막 원소를 제거해준다.
제거해준 리스트의 마지막 원소를 리스트의 첫 번째 위치에 삽입한다.
이 과정을 k번 반복한다.
class Solution:
def rotate(self, nums: List[int], k: int) -> None:
for i in range(k): ## 1. for문으로 리스트를 탐색한다.
## 2. 리스트의 마지막 원소를 제거해준다.
## 3. 제거해준 리스트의 마지막 원소를 리스트의 첫 번째 위치에 삽입한다.
nums.insert(0,nums.pop())